



<!DOCTYPE html>
<html>
<head>
 <link rel="icon" type="image/vnd.microsoft.icon" href="http://www.gstatic.com/codesite/ph/images/phosting.ico">
 
 
 <script type="text/javascript">
 
 
 
 
 var codesite_token = "71d426fefa2fb2fc6ffa3dd38d2b37f7";
 
 
 var CS_env = {"profileUrl":["/u/@VBNeQFBSARJBWwQ%3D/"],"token":"71d426fefa2fb2fc6ffa3dd38d2b37f7","assetHostPath":"http://www.gstatic.com/codesite/ph","domainName":null,"assetVersionPath":"http://www.gstatic.com/codesite/ph/274877064420089206","projectHomeUrl":"/p/codemplosion-profiles","relativeBaseUrl":"","projectName":"codemplosion-profiles","loggedInUserEmail":"benjaminweinhardt1991@googlemail.com"};
 var _gaq = _gaq || [];
 _gaq.push(
 ['siteTracker._setAccount', 'UA-18071-1'],
 ['siteTracker._trackPageview']);
 
 
 </script>
 
 
 <title>StuckHelperFly.cs - 
 codemplosion-profiles -
 
 
 The SVN for CodeMplosion Profiles for Honorbuddy. - Google Project Hosting
 </title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" >
 
 <meta name="ROBOTS" content="NOARCHIVE">
 
 <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/274877064420089206/css/core.css">
 
 <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/274877064420089206/css/ph_detail.css" >
 
 
 <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/274877064420089206/css/d_sb.css" >
 
 
 
<!--[if IE]>
 <link type="text/css" rel="stylesheet" href="http://www.gstatic.com/codesite/ph/274877064420089206/css/d_ie.css" >
<![endif]-->
 <style type="text/css">
 .menuIcon.off { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 -42px }
 .menuIcon.on { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 -28px }
 .menuIcon.down { background: no-repeat url(http://www.gstatic.com/codesite/ph/images/dropdown_sprite.gif) 0 0; }
 
 
 
  tr.inline_comment {
 background: #fff;
 vertical-align: top;
 }
 div.draft, div.published {
 padding: .3em;
 border: 1px solid #999; 
 margin-bottom: .1em;
 font-family: arial, sans-serif;
 max-width: 60em;
 }
 div.draft {
 background: #ffa;
 } 
 div.published {
 background: #e5ecf9;
 }
 div.published .body, div.draft .body {
 padding: .5em .1em .1em .1em;
 max-width: 60em;
 white-space: pre-wrap;
 white-space: -moz-pre-wrap;
 white-space: -pre-wrap;
 white-space: -o-pre-wrap;
 word-wrap: break-word;
 font-size: 1em;
 }
 div.draft .actions {
 margin-left: 1em;
 font-size: 90%;
 }
 div.draft form {
 padding: .5em .5em .5em 0;
 }
 div.draft textarea, div.published textarea {
 width: 95%;
 height: 10em;
 font-family: arial, sans-serif;
 margin-bottom: .5em;
 }

 
 .nocursor, .nocursor td, .cursor_hidden, .cursor_hidden td {
 background-color: white;
 height: 2px;
 }
 .cursor, .cursor td {
 background-color: darkblue;
 height: 2px;
 display: '';
 }
 
 
.list {
 border: 1px solid white;
 border-bottom: 0;
}

 
 </style>
<style>
div#tf_hui_container *
{
	font-family: arial, verdana, sans-serif;
   -moz-user-select: -moz-none;
   -khtml-user-select: none;
   -webkit-user-select: none;
   -o-user-select: none;
   user-select: none;	
}
div#tf_hui_container strong
{
	color: black;
	font-family: arial, verdana, sans-serif;
	font-size: 12px;
	line-height: 16px;
	font-style: normal;
	font-variant: normal;
	font-weight: bold;
}
div#tf_hui_container label
{
	font-weight: normal;
	margin: 0;
	color: white;
	padding-top: 0;
}
div#tf_hui_container div
{
    border: 0px;
	-moz-border-radius: 0px;
	border-radius: 0px;
	margin-bottom: 0px;
    max-width: 1050px;
    min-width: 0px;
	clear : none;
}
div#tf_hui_container label#labelstatus
{
	margin: 7px 43px 0 0;
	display:block;
	padding:0px;
	text-align: right;
	font-weight: bold;
	line-height: 15px;
	width: 79px;
	font-size: 12px;
}
div#tf_hui_container label#labeltitle
{
	margin-left: 5px;
	line-height: 47px;
	vertical-align: baseline;
	font-size: 12px;
}
div#tf_hui_container label.labelstatustxt
{
	float:left;clear:left;
	color: black;
	line-height: 16px;
	text-indent: 0;
	font-size: 12px;
}
div#tf_hui_container label.labelBtnOn
{
	margin: 2px 0 0 8px;
	color: #FFFFFF;
	cursor: pointer;
	float:left;
}
div#tf_hui_container label.labelBtnOff
{
	margin: 2px 0 0 24px;
	color: #FFFFFF;
	cursor: pointer;	
	float:left;
}
div#tf_hui_container label.labelBtnOn_hover
{
	margin: 2px 0 0 8px;
	float:left;
}
div#tf_hui_container label.labelBtnOff_hover
{
	margin: 2px 0 0 24px;
	float:left;
}
a.nd_e506252a6b7649eb9640b54befbe7519_settings_btn_status_on
{
}
div.nd_e506252a6b7649eb9640b54befbe7519_toolbar
{
	left: 50%;
	top: 0px;
	width: 700px;
	height: 47px;
	margin: 0 0 0 -350px;
	z-index: 2147483643;
	position: absolute;
}
div.nd_e506252a6b7649eb9640b54befbe7519_settings_page
{
	left: 50%;
	top: 0px;
	margin: -15px 0 0 106px;
	width: 546px;
	text-decoration: none;
	text-align: center;
	color: #FFFFFF;
	float:left;
	display: none;
	position: static;
	padding:0;
}
p.nd_e506252a6b7649eb9640b54befbe7519_settings_feature
{
	width: 493px;
	border: 0px;
	padding:0px;
	margin: 0 0 0px 20px;
	color: black;
	display: block;
	float:left;	
	text-align: left;
	line-height: 16px;
}
div#tf_hui_container a
{
	outline: none;
	border-bottom: none;
}
div#tf_hui_container img
{
	background: transparent;
	margin: 0;
	padding: 0;
	border: 0;
	width: auto;
}
div#tf_hui_container
{
	left: 50%;
	margin: 0 0 0 -360px;
	width: 720px;
	height: 47px;
	border: 0;
	padding: 0;
	-moz-border-radius: 0;
	max-width: none;
	max-height: none;
	min-height: 0;
	min-width: 0;
	font-family: arial, verdana, sans-serif; 
	font-size: 12px;
	font-variant: normal;
	line-height: 47px;
	white-space: nowrap;
	outline: none;
	background: transparent;
	position: absolute;
	z-index: 2147483643;
	top: -47px;
	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(enabled=false)" !important;
	_behavior: url() !important;
}
div#tf_hui_container a#fraudlink
{
	padding : 0px;
	float:left;
	margin-top: 3px;
	margin-left: 23px;
	text-decoration: none;
	background: url() no-repeat;
}

div#tf_hui_container a#fraudlink_nok
{
	padding : 0px;
	float:left;
	margin-top: -21px;
	margin-left: 12px;
	text-decoration: none;
	background: url() no-repeat;
}
a.nd_e506252a6b7649eb9640b54befbe7519_settings_btn_status, a.nd_e506252a6b7649eb9640b54befbe7519_settings_btn_status:hover
{
	height: 22px;
	font-size:11px;
	float:right;
	margin:5px 0 0 0;
	width:50px;
	padding:0px;
	color:white;
	cursor: pointer;
	text-decoration: none;	
	background: url() no-repeat; 		
}
div.nd_e506252a6b7649eb9640b54befbe7519_status
{
	width: 122px;
	height: 47px;
	line-height: 15px;
	background: url() 0 0 no-repeat;
	text-align: right;
	padding:0px;
	margin: 0px;
	font-weight: bold;
	color: #FFFFFF;
	float: left;
}
div.nd_e506252a6b7649eb9640b54befbe7519_title
{
	width: 412px;
	height: 47px;
	background: url() 0 0 repeat;
	text-align: left;
	padding:0px;
	color: #FFFFFF;
	margin: 0px;
	float: left;
}
div.nd_e506252a6b7649eb9640b54befbe7519_separator
{
	width: 2px;
	height: 47px;	
	background: url() 0 0 no-repeat;
	color: #FFFFFF;
	margin: 0px;
	float: left;
	padding:0px;
}
a.nd_e506252a6b7649eb9640b54befbe7519_dragger
{
	left: 50%;
	top: 0px;
	margin: 0 0 0 63px;
	width: 34px;
	height: 15px;
	background: url() 0 0 no-repeat;
	text-decoration: none;
	text-align: center;
	color: #FFFFFF;
	float: left;	
	display: block;
	cursor: pointer;
}
a.nd_e506252a6b7649eb9640b54befbe7519_dragger_hover, a.nd_e506252a6b7649eb9640b54befbe7519_dragger_hover:hover
{
	left: 50%;
	top: 0px;
	margin: 0 0 0 63px;
	width: 34px;
	height: 15px;
	background: url() -34px 0 no-repeat;
	text-decoration: none;
	text-align: center;
	color: #FFFFFF;
	float: left;	
	display: block;
	cursor: pointer; 
}
div.nd_e506252a6b7649eb9640b54befbe7519_settings_page_content
{
	width: 546px;
	border: 0px;
	padding: 20px 0 17px 0;
	margin: 0px;
	background: url() 0 0 repeat-y;
	display: block;
	text-align:left;
	float:left;
}
a.nd_e506252a6b7649eb9640b54befbe7519_tool_hover, a.nd_e506252a6b7649eb9640b54befbe7519_tool_hover:hover
{ 
	background: url() 0 0 repeat;
	height: 47px;
	text-decoration: none;
	text-align: center;
	color: #FFFFFF;
	float: left;	
	font-size: 15px;
	font-weight: bold; 
	display: block;
	padding: 0 4px 0 4px;
	cursor: pointer;	
	margin: 0;
}
a.nd_e506252a6b7649eb9640b54befbe7519_tool
{
	height: 47px;
	background: url() 0 0 repeat;
	text-decoration: none;
	text-align: center;
	color: #FFFFFF;
	float: left;	
	font-size: 15px;
	font-weight: bold; 
	display: block;
	padding: 0 4px 0 4px;
	cursor: pointer;
	margin: 0;
}
div.nd_e506252a6b7649eb9640b54befbe7519_settings_page_bottom
{
	width: 546px;
	height: 11px
	border: 0px;
	padding: 0px;
	margin: 0px;
	float:left;	
	background: url() 0 0 no-repeat;
	display: block;
}
a.nd_e506252a6b7649eb9640b54befbe7519_settings_page_upbtn
{
	width: 56px;
	margin: 0 0 0 460px;
	height: 11px;
	border: 0px;
	padding: 0px;	
	background: url() 0 0 no-repeat;
	float:left;
	display: block;
	cursor: pointer;
}
a.nd_e506252a6b7649eb9640b54befbe7519_onoff, a.nd_e506252a6b7649eb9640b54befbe7519_onoff:hover
{
	width: 49px;
	height: 47px;
	background: url() 0 0 no-repeat;
	text-decoration: none;
	text-align: center;
	color: #FFFFFF;
	float: left;	
	display: block;
	cursor: pointer;
	margin: 0;
}


div.nd_e506252a6b7649eb9640b54befbe7519_settings_page_top
{
	width: 546px;
	height: 7px;
	border: 0px;
	font-size: 7px;
	padding: 0px;
	float:left;	
	margin: 0px;
	background: url() 0 0 no-repeat;
	display: block;
}
div.nd_e506252a6b7649eb9640b54befbe7519_settings_feature_spacer
{
	width: 546px;
	height: 2px;
	border: 0px;
	padding: 0px;
	float:left;	
	display:block;
	font-size: 0px;	
	margin: 7px 0 7px -20px;
	background: url() 0 0 no-repeat;
}
</style>
<!--[if lt IE 8]>
<style>
div#tf_hui_container a#fraudlink
{
	padding : 0px;
	float:left;
	margin-top: -28px;
	margin-left: 19px;
	text-decoration: none;	
	background: url("/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/moreinfo.png") no-repeat;
}

div#tf_hui_container a#fraudlink_nok
{
	padding : 0px;
	float:left;
	margin-top: -21px;
	margin-left: 12px;
	text-decoration: none;	
	background: url("/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/moreinfo.png") no-repeat;
}
a.nd_e506252a6b7649eb9640b54befbe7519_settings_btn_status, a.nd_e506252a6b7649eb9640b54befbe7519_settings_btn_status:hover
{
	height: 22px;
	font-size:11px;
	float:right;
	margin:5px 0 0 0;
	width:50px;
	padding:0px;
	color:white;
	cursor: pointer;
	text-decoration: none;	
	background: url("/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/settings_status.png") no-repeat;
}
div.nd_e506252a6b7649eb9640b54befbe7519_status
{
	width: 122px;
	height: 47px;
	line-height: 15px;
	background: url("/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/status.png") 0 0 no-repeat;
	text-align: right;
	padding:0px;
	margin: 0px;
	font-weight: bold;
	color: #FFFFFF;
	float: left;
}
div.nd_e506252a6b7649eb9640b54befbe7519_title
{
	width: 412px;
	height: 47px;
	background: url("/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/bkg_null.png") 0 0 repeat;
	text-align: left;
	padding:0px;
	color: #FFFFFF;
	margin: 0px;
	float: left;
}
div.nd_e506252a6b7649eb9640b54befbe7519_separator
{
	width: 2px;
	height: 47px;	
	background: url("/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/separator.png") 0 0 no-repeat;
	color: #FFFFFF;
	margin: 0px;
	float: left;
	padding:0px;
}
a.nd_e506252a6b7649eb9640b54befbe7519_dragger
{
	left: 50%;
	top: 0px;
	margin: 0 0 0 63px;
	width: 34px;
	height: 15px;
	background: url("/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/dragger.png") 0 0 no-repeat;
	text-decoration: none;
	text-align: center;
	color: #FFFFFF;
	float: left;	
	display: block;
	cursor: pointer;
}
a.nd_e506252a6b7649eb9640b54befbe7519_dragger_hover, a.nd_e506252a6b7649eb9640b54befbe7519_dragger_hover:hover
{
	left: 50%;
	top: 0px;
	margin: 0 0 0 63px;
	width: 34px;
	height: 15px;
	background: url("/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/dragger.png") -34px 0 no-repeat;
	text-decoration: none;
	text-align: center;
	color: #FFFFFF;
	float: left;	
	display: block;
	cursor: pointer; 
}
div.nd_e506252a6b7649eb9640b54befbe7519_settings_page_content
{
	width: 546px;
	border: 0px;
	padding: 20px 0 17px 0;
	margin: 0px;
	background: url("/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/settings_bkg.png") 0 0 repeat-y;
	display: block;
	text-align:left;
	float:left;
}
a.nd_e506252a6b7649eb9640b54befbe7519_tool_hover, a.nd_e506252a6b7649eb9640b54befbe7519_tool_hover:hover
{ 
	background: url("/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/bkg_over.png") 0 0 repeat;
	height: 47px;
	text-decoration: none;
	text-align: center;
	color: #FFFFFF;
	float: left;	
	font-size: 15px;
	font-weight: bold; 
	display: block;
	padding: 0 4px 0 4px;
	cursor: pointer;	
}
a.nd_e506252a6b7649eb9640b54befbe7519_tool
{
	height: 47px;
	background: url("/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/bkg_null.png") 0 0 repeat;
	text-decoration: none;
	text-align: center;
	color: #FFFFFF;
	float: left;	
	font-size: 15px;
	font-weight: bold; 
	display: block;
	padding: 0 4px 0 4px;
	cursor: pointer;
}
div.nd_e506252a6b7649eb9640b54befbe7519_settings_page_bottom
{
	width: 546px;
	height: 11px
	border: 0px;
	padding: 0px;
	margin: 0px;
	float:left;	
	background: url("/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/settings_bottom.png") 0 0 no-repeat;
	display: block;
}
a.nd_e506252a6b7649eb9640b54befbe7519_settings_page_upbtn
{
	width: 56px;
	margin: 0 0 0 460px;
	height: 11px;
	border: 0px;
	padding: 0px;	
	background: url("/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/settings_hide.png") 0 0 no-repeat;
	float:left;
	display: block;
	cursor: pointer;
}
a.nd_e506252a6b7649eb9640b54befbe7519_onoff, a.nd_e506252a6b7649eb9640b54befbe7519_onoff:hover
{
	width: 49px;
	height: 47px;
	background: url("/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/onoff.png") 0 0 no-repeat;
	text-decoration: none;
	text-align: center;
	color: #FFFFFF;
	float: left;	
	display: block;
	cursor: pointer;
}
div.nd_e506252a6b7649eb9640b54befbe7519_settings_page_top
{
	width: 546px;
	height: 7px;
	border: 0px;
	font-size: 7px;
	padding: 0px;
	float:left;	
	margin: 0px;
	background: url("/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/settings_top.png") 0 0 no-repeat;
	display: block;
}
div.nd_e506252a6b7649eb9640b54befbe7519_settings_feature_spacer
{
	width: 546px;
	height: 2px;
	border: 0px;
	padding: 0px;
	float:left;	
	display:block;
	font-size: 0px;	
	margin: 7px 0 7px -20px;
	background: url("/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/settings_separator.png") 0 0 no-repeat;
}
</style>
<![endif]-->
<style>
a.nd_e506252a6b7649eb9640b54befbe7519_settings_btn_status_on_hover, a.nd_e506252a6b7649eb9640b54befbe7519_settings_btn_status_on_hover:hover
{
	background-position: -50px 0;
}
a.nd_e506252a6b7649eb9640b54befbe7519_settings_btn_status_off
{
	background-position: -100px 0;
}
a.nd_e506252a6b7649eb9640b54befbe7519_settings_btn_status_off_hover, a.nd_e506252a6b7649eb9640b54befbe7519_settings_btn_status_off_hover:hover
{
	background-position: -150px 0;
}
a.nd_e506252a6b7649eb9640b54befbe7519_settings_btn_status_on_unavailable
{
	background-position: -200px 0;	
	cursor: default;
}
a.nd_e506252a6b7649eb9640b54befbe7519_settings_btn_status_on_unavailable_hover, a.nd_e506252a6b7649eb9640b54befbe7519_settings_btn_status_on_unavailable_hover:hover
{
	background-position: -250px 0;	
	cursor: default;
}
a.nd_e506252a6b7649eb9640b54befbe7519_settings_btn_status_off_unavailable
{
	background-position: -300px 0;	
	cursor: default;
}
a.nd_e506252a6b7649eb9640b54befbe7519_settings_btn_status_off_unavailable_hover, a.nd_e506252a6b7649eb9640b54befbe7519_settings_btn_status_off_unavailable_hover:hover
{
	background-position: -350px 0;	
	cursor: default;
}
a.nd_e506252a6b7649eb9640b54befbe7519_onoff_off
{
	background-position: -98px 0;
}
a.nd_e506252a6b7649eb9640b54befbe7519_onoff_off_hover, a.nd_e506252a6b7649eb9640b54befbe7519_onoff_off_hover:hover
{ 
	background-position: -147px 0;
}
a.nd_e506252a6b7649eb9640b54befbe7519_onoff_on
{	
}
a.nd_e506252a6b7649eb9640b54befbe7519_onoff_on_hover, a.nd_e506252a6b7649eb9640b54befbe7519_onoff_on_hover:hover
{ 
	background-position: -49px 0;	
}



a.nd_e506252a6b7649eb9640b54befbe7519_onoff_off_unavailable
{
	background-position: -294px 0;
}
a.nd_e506252a6b7649eb9640b54befbe7519_onoff_off_unavailable_hover, a.nd_e506252a6b7649eb9640b54befbe7519_onoff_off_unavailable_hover:hover
{ 
	background-position: -343px 0;
	cursor: default;
}
a.nd_e506252a6b7649eb9640b54befbe7519_onoff_on_unavailable
{	
	background-position: -196px 0;
}
a.nd_e506252a6b7649eb9640b54befbe7519_onoff_on_unavailable_hover, a.nd_e506252a6b7649eb9640b54befbe7519_onoff_on_unavailable_hover:hover
{ 
	background-position: -245px 0;	
	cursor: default;
}
#ghbody div#tf_hui_container .nd_e506252a6b7649eb9640b54befbe7519_settings_page
{
    margin: -15px 0 0 106px;
}

#ghbody div#tf_hui_container div
{
    margin-left: 0px;
    margin-top: 0px;
}

#ghbody div#tf_hui_container .nd_e506252a6b7649eb9640b54befbe7519_settings_feature_spacer
{
	margin: 7px 0 0 -20px;
}

#ghbody div#tf_hui_container 
{
    margin-bottom: 0px;
    margin-left: 0px;
    margin-top: 0px;
	margin-left: -360px;
}
</style></head>
<body class="t4"><script type='text/javascript' language='javascript'>
//<![CDATA[

var bd_nd_supervisor = false;
var bd_nd_issues_count = 0;
var bd_nd_untrusted = false;
var bd_nd_whitelist = false;
var bd_nd_statuses = new Array();
bd_nd_statuses["NetDefender.HTTP.Core"] = new Array();
bd_nd_statuses["NetDefender.HTTP.Core"]["NetDefender.Feature.HTTP.Core.Status"] = 1;
bd_nd_statuses["NetDefender.HTTP.Alert"] = new Array();
bd_nd_statuses["NetDefender.HTTP.AntiMalware"] = new Array();
bd_nd_statuses["NetDefender.HTTP.AntiMalware"]["NetDefender.Feature.HTTP.AntiMalware.ScanRequest"] = 1;
bd_nd_statuses["NetDefender.HTTP.AntiMalware"]["NetDefender.Feature.HTTP.AntiMalware.ScanResponse"] = 1;
bd_nd_statuses["NetDefender.HTTP.AntiMalware"]["NetDefender.Feature.HTTP.AntiMalware.ScanPOST"] = 1;
bd_nd_statuses["NetDefender.HTTP.AntiMalware"]["NetDefender.Feature.HTTP.AntiMalware.ScanIM"] = 1;
bd_nd_statuses["NetDefender.HTTP.AphParental"] = new Array();
bd_nd_statuses["NetDefender.HTTP.AphParental"]["NetDefender.Feature.HTTP.AphParental.Aph"] = 1;
bd_nd_statuses["NetDefender.HTTP.AphParental"]["NetDefender.Feature.HTTP.AphParental.Parental"] = 0;
bd_nd_statuses["NetDefender.HTTP.Chunked"] = new Array();
bd_nd_statuses["NetDefender.HTTP.Cloud"] = new Array();
bd_nd_statuses["NetDefender.HTTP.Cloud"]["NetDefender.Feature.HTTP.Cloud.Status"] = 1;
bd_nd_statuses["NetDefender.HTTP.Deflate"] = new Array();
bd_nd_statuses["NetDefender.HTTP.GZip"] = new Array();
bd_nd_statuses["NetDefender.HTTP.HTMLExtractor"] = new Array();
bd_nd_statuses["NetDefender.HTTP.HUI"] = new Array();
bd_nd_statuses["NetDefender.HTTP.LinkScanner"] = new Array();
bd_nd_statuses["NetDefender.HTTP.LinkScanner"]["NetDefender.Feature.HTTP.LinkScanner.Status"] = 1;
bd_nd_statuses["NetDefender.HTTP.Privacy"] = new Array();
bd_nd_statuses["NetDefender.HTTP.Privacy"]["NetDefender.Feature.HTTP.Privacy.Status"] = 1;
bd_nd_statuses["NetDefender.HTTP.Resource"] = new Array();
bd_nd_statuses["NetDefender.HTTP.Settings"] = new Array();
bd_nd_statuses["NetDefender.HTTP.WBList"] = new Array();
bd_nd_statuses["NetDefender.HTTP.WBList"]["NetDefender.Feature.HTTP.WhitelistBlacklist.Status"] = 1;
bd_nd_statuses["NetDefender.HTTP.WordFiltering"] = new Array();
bd_nd_statuses["NetDefender.HTTP.WordFiltering"]["NetDefender.Feature.HTTP.WordFiltering.Status"] = 1;
bd_nd_statuses["NetDefender.HTTP.ZLib"] = new Array();

//]]>
</script><script type="text/javascript" >
//<![CDATA[
/*BEGIN_TRANSLATABLE_TEXT*/
var bd_nd_E893A5F3FE87409FB167F51A030D021C_strings = 
{
	settings_global_title : "",
	settings_global_desc : "Global",
	settings_adfilter_title : "Werbefilter",
	settings_adfilter_desc : "Unterdrückt lästige Pop-up-Werbung.",
	settings_aph_title : "Phishing-Filter",
	settings_aph_desc : "Blockiert Phishing-Seiten.",
	settings_am_title : "Malware-Filter",
	settings_am_desc : "Blockiert Malware-Seiten.",
	settings_ls_title : "Search Advisor",
	settings_ls_desc : "Sie werden bereits in den Suchergebnissen vor gefährlichen Internet-Seiten gewarnt.",
	
	toolbar_status_ok : "Diese Seite <br/> ist sicher",
	toolbar_status_nok : "Diese Seite <br/>ist nicht sicher",
	toolbar_status_err : "Ein Fehler <br/> ist aufgetreten",
	toolbar_status_disabled : "Diese Seite wurde <br/> nicht gescannt.",
	toolbar_status_untrusted : "Unsicher",
	toolbar_title : "Bitdefender Total Security 2012",

	tool_3_tooltip : "Sandbox",
    tool_3_tooltip_xp : "unter Windows XP nicht unterstützt",
	tool_settings_text : "Einstellungen",
	tool_settings_tooltip : "Einstellungen",

	tool_dragger : "Klicken Sie hier, um es zu erweitern.",

    fraud_link: "http://trafficlight.bitdefender.com/info?url={URL}&language=de_DE"
};
  /*END_TRANSLATABLE_TEXT*/

var bd_nd_E893A5F3FE87409FB167F51A030D021C_body 			= document.getElementsByTagName("body");
var bd_nd_E893A5F3FE87409FB167F51A030D021C_isIE 			= (document.addEventListener) ? false : true;
var bd_nd_E893A5F3FE87409FB167F51A030D021C_fraud_lower		= 10;
var bd_nd_E893A5F3FE87409FB167F51A030D021C_fraud_upper		= 90;
//var bd_nd_supervisor                                      = true;


var bd_nd_E893A5F3FE87409FB167F51A030D021C_settings = new function(bd_nd_statuses)
{
	this.bd_nd_hui_features	=	[	{	status: 0,
										title: bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.settings_global_title,
										description: bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.settings_global_desc,
										user:"",
										plugins:[
												  {	name: "NetDefender.HTTP.Core",
													features: [	"NetDefender.Feature.HTTP.Core.Status"]
												  }
												]
									},
									{	status: 0,
										title: bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.settings_aph_title,
										description: bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.settings_aph_desc,
										user: "%USER%",
										plugins:[
												  {	name: "NetDefender.HTTP.AphParental",
													features: [	"NetDefender.Feature.HTTP.AphParental.Aph"]
												  }
												]
									},
									{	status: 0,
										title: bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.settings_am_title,
										description: bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.settings_am_desc,
										user: "",
										plugins:[
												  {	name: "NetDefender.HTTP.AntiMalware",
													features: [	"NetDefender.Feature.HTTP.AntiMalware.ScanRequest",
																"NetDefender.Feature.HTTP.AntiMalware.ScanResponse",
																"NetDefender.Feature.HTTP.AntiMalware.ScanPOST",
																"NetDefender.Feature.HTTP.AntiMalware.ScanIM"
															  ]
												  }
												]
									},
									{	status: 0,
										title: bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.settings_ls_title,
										description: bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.settings_ls_desc,
										user: "%USER%",
										plugins:[
												  {	name: "NetDefender.HTTP.LinkScanner",
													features: [	"NetDefender.Feature.HTTP.LinkScanner.Status"
															  ]
												  }
												]
									}
								];

	this.init = function(statuses)
	{
		var i;
		var cFeatures = bd_nd_E893A5F3FE87409FB167F51A030D021C_settings.getFeaturesCount();
		for (i = 0; i < cFeatures; i++)
		{
			feature = bd_nd_E893A5F3FE87409FB167F51A030D021C_settings.getFeature(i);
			feature.status = this.resolveStatus(statuses, feature);
		}
	}

	this.resolveStatus = function(statuses, feature)
	{
		var i, j;
		for (i = 0; i < feature.plugins.length; i++)
		{
			for (j = 0; j < feature.plugins[i].features.length; j++)
			{
				if (undefined != statuses[feature.plugins[i].name][feature.plugins[i].features[j]] && 1 == statuses[feature.plugins[i].name][feature.plugins[i].features[j]])
				{
					return 1;
				}
			}
		}
		return 0;
	}

	this.getFeaturesCount = function()
	{
		return this.bd_nd_hui_features.length;
	}

	this.getFeature = function(index)
	{
		return this.bd_nd_hui_features[index];
	}

	this.settingsCallback = function(responseText, responseStatus, responseXML, self)
	{
		var status;
		var root;
		if (undefined != responseXML)
		{
			root = responseXML.documentElement;
		}
		if (200 == responseStatus && undefined != root && root.tagName == "module" && root.hasChildNodes())
		{
			status = 0;
			for (var i = 0; i < root.childNodes.length; i++)
			{
				if (1 == root.childNodes[i].getAttribute("status"))
				{
					status = 1;
					break;
				}
			}
			self.feature.status = status;
			self.callback(self.index, status);
		}
		else
		{
			self.callback(-1, 10001);
		}
	}
	
    this.SetStatusByIndex = function(index, callback, status)
    {
		var feature = this.getFeature(index);
		var xmlhttp = new bd_nd_E893A5F3FE87409FB167F51A030D021C_ajax(this.settingsCallback);
		if(!xmlhttp)
		{
			callback(-1, 10000);
			return;
		}
		xmlhttp.index = index;
		xmlhttp.feature = feature;
		xmlhttp.callback = callback;

		var params = "status=" + encodeURIComponent("<module uid=\"NetDefender.HTTP.Core\">");
		var i, j;
		var new_status = status;
		for (i = 0; i < feature.plugins.length; i++)
		{
			for (j = 0; j < feature.plugins[i].features.length; j++)
			{
				params += encodeURIComponent("<plugin uid=\"" + feature.plugins[i].name + "\" feature=\"" + feature.plugins[i].features[j] + "\" user=\"" + feature.user + "\" pid=\"%PID%\" status=\"" + new_status + "\" />");
			}
		}
		params += encodeURIComponent("</module>");
		
		xmlhttp.sendRequest(params);
	} 

	this.changeStatusByIndex = function(index, callback)
	{
		var feature = this.getFeature(index);
		var xmlhttp = new bd_nd_E893A5F3FE87409FB167F51A030D021C_ajax(this.settingsCallback);
		if(!xmlhttp)
		{
			callback(-1, 10000);
			return;
		}
		xmlhttp.index = index;
		xmlhttp.feature = feature;
		xmlhttp.callback = callback;

		var params = "status=" + encodeURIComponent("<module uid=\"NetDefender.HTTP.Core\">");
		var i, j;
		var new_status = (1 == feature.status ? 0 : 1);
		for (i = 0; i < feature.plugins.length; i++)
		{
			for (j = 0; j < feature.plugins[i].features.length; j++)
			{
				params += encodeURIComponent("<plugin uid=\"" + feature.plugins[i].name + "\" feature=\"" + feature.plugins[i].features[j] + "\" user=\"" + feature.user + "\" pid=\"%PID%\" status=\"" + new_status + "\" />");
			}
		}
		params += encodeURIComponent("</module>");
		
		xmlhttp.sendRequest(params);

        if (index == 0)
        {
                bd_nd_E893A5F3FE87409FB167F51A030D021C_settings.SetStatusByIndex(1, bd_nd_E893A5F3FE87409FB167F51A030D021C_statusChanged, new_status);
                bd_nd_E893A5F3FE87409FB167F51A030D021C_settings.SetStatusByIndex(2, bd_nd_E893A5F3FE87409FB167F51A030D021C_statusChanged, new_status);
                bd_nd_E893A5F3FE87409FB167F51A030D021C_settings.SetStatusByIndex(3, bd_nd_E893A5F3FE87409FB167F51A030D021C_statusChanged, new_status);
        }
	}
}

function bd_nd_E893A5F3FE87409FB167F51A030D021C_ajax(callback)
{
	var that = this;
	this.bd_nd_E893A5F3FE87409FB167F51A030D021C_ajaxCallback = callback || function() { };
	(window.ActiveXObject) ? this.ajax = new ActiveXObject("Microsoft.XMLHTTP") : this.ajax = new XMLHttpRequest();

	this.sendRequest = function(params)
	{
		that.ajax.onreadystatechange = function()
		{
			if (that.ajax.readyState == 4)
			{
				that.bd_nd_E893A5F3FE87409FB167F51A030D021C_ajaxCallback(that.ajax.responseText, that.ajax.status, that.ajax.responseXML, that);
			}
		} 
		this.ajax.open("POST", window.location + Math.random(), true);
		this.ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		this.ajax.setRequestHeader("BDNDSS_B67EA559F21B487F861FDA8A44F01C50", "10000000b17fac0a4e8059254e8053f5b17fac0a4387d1e261d9afaf7c787666614d91aed810e674");
		this.ajax.send(params);
	}
}

function bd_nd_E893A5F3FE87409FB167F51A030D021C_webEvt()
{
	this.params = "";
	
	this.addEvent = function(action, value, source)
	{
		this.params = this.params + "<event><action><![" + "CDATA" + "[" + action + "]" + "]></action><source><![" + "CDATA" + "[" + source + "]" + "]></source><value><![" + "CDATA" + "[" + value + "]" + "]></value></event>";
	}
	
	this.getEventData = function()
	{
		this.params = "<module uid=\"NetDefender.HTTP.Core\">" + this.params + "</module>";
		this.params = "event=" + encodeURIComponent(this.params);

		return this.params;
	}
	
	this.sendEvents = function()
	{
		var ajax = new bd_nd_E893A5F3FE87409FB167F51A030D021C_ajax();
		ajax.sendRequest(this.getEventData());
	}
}

var		  bd_nd_E893A5F3FE87409FB167F51A030D021C_evt = new function()
{    
    this.add = function(sEvent, fSubject, oElTarget)
	{
		oElTarget = oElTarget || window,
		sEvent = sEvent.toLowerCase();

		if(bd_nd_E893A5F3FE87409FB167F51A030D021C_isIE)
		{
			//IE specific exceptions:
			if(oElTarget == window && sEvent == 'onmousemove') oElTarget = document.getElementsByTagName('BODY')[0];
			if(oElTarget == document && sEvent == 'onmouseout'){ oElTarget = document.getElementsByTagName('HTML')[0]; sEvent = 'onmouseleave'; }

			oElTarget.attachEvent(sEvent, fSubject);
		}else
		{
			sEvent = sEvent.substr(2);
			oElTarget.addEventListener(sEvent, fSubject, false);
		}
    }

    this.del = function(sEvent, fSubject, oElTarget)
	{
		oElTarget = oElTarget || window;
		sEvent = sEvent.toLowerCase();

		if(bd_nd_E893A5F3FE87409FB167F51A030D021C_isIE)
		{
			//IE specific exceptions:
			if(oElTarget == window && sEvent == 'onmousemove') oElTarget = document.getElementsByTagName('BODY')[0];
			if(oElTarget == document && sEvent == 'onmouseout'){ oElTarget = document.getElementsByTagName('HTML')[0]; sEvent = 'onmouseleave'; }
			oElTarget.detachEvent(sEvent, fSubject);
		}else
		{
			sEvent = sEvent.substr(2);
			oElTarget.removeEventListener(sEvent, fSubject, false);
		}
    }
	this.getEventTarget = function(e)
	{
		if(!e)
			e = window.event;
		if(e.target)
			return e.target;
		return e.srcElement;
	}	
}
var 	  bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM = new function()
{
    //gElm is an object which has the structure {'name': nodeName, 'attributes' : [{'name': attrName, 'valule': 'attrValue'}, ...]}
    this.create = function(gElm)
	{
		var attrName = null;
		var     node = document.createElement(gElm.name);

		for(attrName in gElm.attributes)
		{
			if ('className' == attrName)
			{
				node.className = gElm.attributes[attrName];
			}
			else
			if ('innerHTML' == attrName)
			{
				node.innerHTML = gElm.attributes[attrName];
			}
			else
			{
				node.setAttribute(attrName, gElm.attributes[attrName]);
			}
		}
		return node;
    }
    
    //gElm is an DOM object referrence
    this.destroy = function(gElm)
	{
		return gElm.parentNode.removeChild(gElm);
    }
}

//hui object
var  	bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI = new function()
{
	var no_pos_fixed 	= false;
	var hui_container	= null;
	var PREFIX				= "nd_e506252a6b7649eb9640b54befbe7519";
	var STATUS_OK 			= 1;
	var STATUS_NOK 			= 2;
	var STATUS_ERR 			= 3;
	var STATUS_DISABLED 	= 4;
	var STATUS_UNTRUSTED	= 5;
	
	var STR_STATUS_OK			= bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.toolbar_status_ok;
	var STR_STATUS_NOK			= bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.toolbar_status_nok;
	var STR_STATUS_ERR			= bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.toolbar_status_err;
	var STR_STATUS_DISABLED		= bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.toolbar_status_disabled;
	var STR_TITLE				= bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.toolbar_title;
	var STR_STATUS_UNTRUSTED	= bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.toolbar_status_untrusted;

	var hui_visible;
	var	isUntrustedSite = false;
	var settings_visible;
	var isAlertPage = false;
	var isProductOn  = false;
	var status;
	var title;
	var onoff;
	var dragger;
	var settingsPage;
	var settingsPageContent;

	this.GetID = function(id)
	{
		return PREFIX + "_" + id;
	}
	this.StripID = function(id)
	{
		return id.substr(PREFIX.length + 1);
	}
	
	this.CreateStatus = function(state)
	{
		var status_style;
		var status_html;

		status = bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM.create({
			name        : 'div', 
			attributes  : 
			{ 
				id  : this.GetID('status'),
				className : this.GetID('status')
			}});

		switch (state)
		{
			case STATUS_OK:
			{
				status.style.backgroundPosition="0px 0px";
				status.innerHTML = "<label id='labelstatus'>"+STR_STATUS_OK+"</label>";
			}break;
			case STATUS_NOK:
			{
                var fraud_link = bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.fraud_link;
				var window_location = escape(window.location);
				var newlink = fraud_link.replace("{URL}", window_location);
				status.style.backgroundPosition="-122px 0px";
				status.innerHTML = "<label id='labelstatus'>"+STR_STATUS_NOK+"</label><a href='"+ newlink +"' id='fraudlink_nok' target='_blank'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a>";	
			}break;
			case STATUS_ERR:
			{
				status.style.backgroundPosition="-244px 0px";
				status.innerHTML = "<label id='labelstatus'>"+STR_STATUS_ERR+"</label>";		
			}break;
			case STATUS_UNTRUSTED:
			{
			    var fraud_link = bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.fraud_link;
				var window_location = escape(window.location);
				var newlink = fraud_link.replace("{URL}", window_location);
				status.style.backgroundPosition="-244px 0px";
				status.innerHTML = "<label id='labelstatus'>"+STR_STATUS_UNTRUSTED+"</label><a href='"+ newlink +"' id='fraudlink' target='_blank'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a>";				
			}break;
			case STATUS_DISABLED:
			{
				status.style.backgroundPosition="-366px 0px";
				status.innerHTML = "<label id='labelstatus'>"+STR_STATUS_DISABLED+"</label>";		
			}break;
			default:
			{
				status.style.backgroundPosition="-366px 0px";
				status.innerHTML = "<label id='labelstatus'>"+STR_STATUS_DISABLED+"</label>";
			}break;
		}
			
		hui_container.appendChild(status);
	}
	
		this.CreateTitle = function()
	{	
	   title = bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM.create({
			name        : 'div', 
			attributes  : 
			{ 
				id  : this.GetID('title'),
				className : this.GetID('title'),
				innerHTML : "<label id='labeltitle'>"+STR_TITLE+"</label>"
			}});
		hui_container.appendChild(title);
	}
	
	this.CreateSeparator = function()
	{
		var separator;
		
	    separator = bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM.create({
			name        : 'div', 
			attributes  : 
			{ 
				className : this.GetID('separator')
			}});
		hui_container.appendChild(separator);
	}
	
	this.CreateTool = function(id, html, tt, ev, enabled)
	{	
		var tool;
		
	    tool = bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM.create({
			name        : 'a', 
			attributes  : 
			{ 
				id  : this.GetID(id),
				className : this.GetID('tool'),
				innerHTML : html,
				title : tt,
				style : "width:auto"
			}});

        if (enabled)
        {
            bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.add("onclick", ev, tool);
		    bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.add("onmouseover", this.OnMouseOver, tool);
		    bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.add("onmouseout", this.OnMouseOut, tool);
        }
        else
        {
		    tool.style.cursor = 'default';//setAttribute("cursor", "none");
		}

        hui_container.appendChild(tool);
		
		return tool;
	}
    	
	this.CreateOnOff = function(state, tt)
	{
	    onoff = bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM.create({
			name        : 'a', 
			attributes  : 
			{ 
				id  : this.GetID('onoff'),
				className : this.GetID('onoff') + " " + (state ? this.GetID('onoff_on') : this.GetID('onoff_off')) + (bd_nd_supervisor ? "" : "_unavailable"),
				title : tt
			}});
		bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.add("onclick", this.OnOnOffClick, onoff);
		bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.add("onmouseover",this.OnMouseOver ,onoff);
		bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.add("onmouseout",this.OnMouseOut ,onoff);		
		hui_container.appendChild(onoff);
	}	
		
	this.CreateDragger = function(tt)
	{		
	   dragger = bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM.create({
			name        : 'a', 
			attributes  : 
			{ 
				id  : this.GetID('dragger'),
				className : this.GetID('dragger'),
				title : tt
			}});
		bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.add("onclick", this.OnDraggerClick, dragger);
		bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.add("onmouseover",this.OnMouseOver ,dragger);
		bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.add("onmouseout",this.OnMouseOut ,dragger);
		hui_container.appendChild(dragger);
	}	
	
	this.OnMouseOut= function(e)
	{
		sender = bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.getEventTarget(e); 									
		sender = bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.getEventTarget(e); 	
		if (sender.className == '' || sender.nodeName.toLowerCase() == 'label')
		{
			sender = sender.parentNode;
		}		
		classes = sender.className.split(' ');		

		if (classes.length)
		{
			var lastClassName = classes.pop();
			var newClassName = '';
			if (classes.length)
			{
				newClassName = classes.join(' ');
			}
			newClassName += ' ';
			
			var pos = lastClassName.lastIndexOf('_hover');
			if (-1 != pos)
			{
				newClassName += lastClassName.substr(0,pos);
				sender.className = newClassName;
				return false;				
			}
		}
	}
	this.OnMouseOver= function(e)
	{
		sender = bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.getEventTarget(e); 	
		if (sender.className == '' || sender.nodeName.toLowerCase() == 'label')
		{
			sender = sender.parentNode;
		}
		classes = sender.className.split(' ');		

		if (classes.length)
		{
			var lastClassName = classes.pop();
			var newClassName = '';
			if (classes.length)
			{
				newClassName = classes.join(' ');
			}
			newClassName += ' ';
			
			var pos = lastClassName.lastIndexOf('_hover');
			if (-1 == pos)
			{
				//we have hover strip it down
				newClassName += lastClassName;
				newClassName += '_hover';				
				sender.className = newClassName;
				return false;				
			}
		}
	}
	this.OnDraggerClick = function(e)
	{
		if (false == isAlertPage)//colapse hui only if this not an alert page
		{
			if (hui_visible)
			{
				hui_visible = false;
				hui_container.style.top = '-47px';
				dragger.style.top = '0px';
				if (settings_visible)
				{
					settingsPage.style.display = "none";
					settings_visible = false;
				}						
			}
			else
			{
				hui_visible = true;
				hui_container.style.top = '0px';
				dragger.style.top = '47px';
			}
			e.cancelBubble = true;
		}
	}
	
	this.CreateSettingsPage = function()
	{		
	   settingsPage = bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM.create({
			name        : 'div', 
			attributes  : 
			{ 
				className : this.GetID('settings_page')
			}});
		var settingsPageTop = bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM.create({
			name        : 'div', 
			attributes  : 
			{ 
				className : this.GetID('settings_page_top')
			}});
		var settingsPageBottom = bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM.create({
			name        : 'div', 
			attributes  : 
			{ 
				className : this.GetID('settings_page_bottom')
			}});
		var settingsPageUpBtn = bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM.create({
			name        : 'a', 
			attributes  : 
			{ 
				className : this.GetID('settings_page_upbtn')
			}});
		bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.add("onclick", this.OnTool4Click, settingsPageUpBtn);
			
		settingsPageContent = bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM.create({
			name        : 'div', 
			attributes  : 
			{ 
				className : this.GetID('settings_page_content')
			}});
			
		this.PopulateSettings(settingsPageContent);
		
		settingsPage.appendChild(settingsPageTop);
		settingsPage.appendChild(settingsPageContent);
		settingsPageBottom.appendChild(settingsPageUpBtn);
		settingsPage.appendChild(settingsPageBottom);
		hui_container.appendChild(settingsPage);
	}	

	this.PopulateSettings = function(settingsPage)
	{		
		var paragraph = null;
		var btnStatus = null;
		var featureSpacer = null;
		var count = bd_nd_E893A5F3FE87409FB167F51A030D021C_settings.getFeaturesCount();

		for (var i = 1; i < count; i++)
		{
			feature = bd_nd_E893A5F3FE87409FB167F51A030D021C_settings.getFeature(i);
			paragraph = bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM.create({
			name        : 'p', 
			attributes  : 
			{ 
				className : this.GetID('settings_feature')
			}});		
			
			btnStatus = bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM.create({
			name        : 'a', 
			attributes  : 
			{
				id : this.GetID(i)
			}});			
			if (feature.status)
			{
				btnStatus.className = this.GetID('settings_btn_status') + " " + (bd_nd_supervisor ? this.GetID('settings_btn_status_on') : this.GetID('settings_btn_status_on_unavailable'));
			}else
			{
				btnStatus.className = this.GetID('settings_btn_status') + " " + (bd_nd_supervisor ? this.GetID('settings_btn_status_off') : this.GetID('settings_btn_status_off_unavailable'));
			}
				
			bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.add("onclick", this.btnStatusClick, btnStatus);
			bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.add("onmouseover",this.OnMouseOver ,btnStatus);
			bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.add("onmouseout",this.OnMouseOut ,btnStatus);
			
			paragraph.innerHTML = "<label class='labelstatustxt' ><strong>"+feature.title+"</strong><br/>"+feature.description+'</label>';
			paragraph.appendChild(btnStatus);			
			
			if (i < count - 1)
			{
				featureSpacer = bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM.create({
				name        : 'div', 
				attributes  : 
				{ 
					className : this.GetID('settings_feature_spacer')
				}});								
				paragraph.appendChild(featureSpacer);
			}
			settingsPage.appendChild(paragraph);			
		}
	}
	
	this.btnStatusClick = function(e)
	{
		//check if the product is off
		if (bd_nd_supervisor && bd_nd_E893A5F3FE87409FB167F51A030D021C_settings.getFeature(0).status)
		{
			sender = bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.getEventTarget(e);
			if ('' == sender.id )
			{
				feature = bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.StripID(sender.parentNode.id);
			}else
			{
				feature = bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.StripID(sender.id);
			}
			if (null != (feature))
			{
				bd_nd_E893A5F3FE87409FB167F51A030D021C_settings.changeStatusByIndex(feature, bd_nd_E893A5F3FE87409FB167F51A030D021C_statusChanged);
			}
		}
		e.cancelBubble = true;
		return false;
	}
	this.OnOnOffClick = function(e)
	{
		if (bd_nd_supervisor)
		{
			bd_nd_E893A5F3FE87409FB167F51A030D021C_settings.changeStatusByIndex(0, bd_nd_E893A5F3FE87409FB167F51A030D021C_onOffChanged);        
			e.cancelBubble = true;
		}
	}

	this.OnTool0Click = function(e)
	{
		alert("TOOL0");
		e.cancelBubble = true;
	}

	this.OnTool1Click = function(e)
	{
		alert("TOOL1");
		e.cancelBubble = true;
	}

	this.OnTool2Click = function(e)
	{
		var webEvt = new bd_nd_E893A5F3FE87409FB167F51A030D021C_webEvt();
		var obj = bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.getEventTarget(e);
		if (obj.nodeName.toLowerCase() == "img")
		{
			obj = obj.parentNode;
		}
		webEvt.addEvent("click", "", obj.id);
		webEvt.sendEvents();
		e.cancelBubble = true;
	}
	
    this.IsSandBoxAvailable = function()
    {
        var OSName="Win7";
        var OS = navigator.appVersion;
                                
                                
        if (navigator.appName != 'Microsoft Internet Explorer')
        {
                OS = navigator.userAgent;
        }

        if (OS.indexOf("Win")!=-1)
        {
                if ((OS.indexOf("Windows NT 7.0")!=-1) || (OS.indexOf("Windows NT 6.1")!=-1))
                {
                    //win7
                    return true;
                }
                else if ((OS.indexOf("Windows NT 6.0")!=-1)) 
                {
                    // cica-i vista...
                    return true;
                }

        }
        return false;
    }  

	this.OnTool3Click = function(e)
	{
		var webEvt = new bd_nd_E893A5F3FE87409FB167F51A030D021C_webEvt();
		var obj = bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.getEventTarget(e);
		if (obj.nodeName.toLowerCase() == "img")
		{
			obj = obj.parentNode;
		}
		webEvt.addEvent("click", window.location, "clicksandbox");
		webEvt.sendEvents();
		e.cancelBubble = true;
	}

	this.OnTool4Click = function(e)
	{
		if (settings_visible)
		{
			settingsPage.style.display = "none";
			settings_visible = false;
		}else
		{
			settingsPage.style.display = "block";
			settings_visible = true;		
		}
		e.cancelBubble = true;
	}
	this.canEmbed = function()
	{
		var rv = -1; 

		if (navigator.appName != 'Microsoft Internet Explorer')
		{
			return true;
		}
		
		var ua = navigator.userAgent;
		var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
		if (re.exec(ua) != null)
		{
			rv = parseFloat(RegExp.$1);
		}
		if (rv >= 8.0)
		{
			return true;
		}
		
		return false;
	}

	this.IsHuiVisible = function()
	{
		if (isAlertPage)
		{
			return true;
		}
		return hui_visible;
	}
	
	this.Init = function()
	{
		//create statuses init
		bd_nd_E893A5F3FE87409FB167F51A030D021C_settings.init(bd_nd_statuses);
		//check if I am in a frame
		if (typeof(window.top) != 'object')
		{
			if (window.parent != window)
			{
				//we are in a frame
				return 1;
			}
		}
		else 
		if (window.top != window)
		{     
			return 1;
		}
	
		//if another load still slips by, this ensures out toolbar is unique
		if(null != document.getElementById('tf_hui_container'))
		{ 
			return;
		}
		//check if this is IE8 or above. IF IE 7 than position fixed is not useful
		if (navigator.appName == "Microsoft Internet Explorer")
		{
			if (typeof(document.documentMode)=='undefined' || document.documentMode<8)
			{
				no_pos_fixed = true;
			}
		}

		//create hui container div
		if (no_pos_fixed == false)
		{
		   hui_container = bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM.create({
				name        : 'div', 
				attributes  : 
				{ 
					id  : 'tf_hui_container',
					dir: 'ltr',
					onselectstart :'return false;'
				}});
				hui_container.style.position = "fixed";
		}else
		{
			hui_container = bd_nd_E893A5F3FE87409FB167F51A030D021C_DOM.create({
				name        : 'div', 
				attributes  : 
				{ 
					id  : 'tf_hui_container',
					dir: 'ltr',
					onselectstart :'return false;'					
				}});			
		}
		hui_visible = false;
		isUntrustedSite = false;
		settings_visible = false;
		//check if this is an alert page
		if (typeof(bd_nd_issues_count) != "undefined")
		{
			isAlertPage = bd_nd_issues_count > 0 ? true : false;
		}
		//check if this is maybe fraud page
		if (typeof(bd_nd_fraud_score) != "undefined")
		{
			if (bd_nd_fraud_score >= bd_nd_E893A5F3FE87409FB167F51A030D021C_fraud_lower && bd_nd_fraud_score <= bd_nd_E893A5F3FE87409FB167F51A030D021C_fraud_upper)
			{
				isUntrustedSite = true;
			}
		}
		
		isProductOn = (1 == bd_nd_E893A5F3FE87409FB167F51A030D021C_settings.getFeature(0).status ? true : false);
		
		if (typeof(bd_nd_untrusted) != "undefined" && bd_nd_untrusted)
		{
			isUntrustedSite = true;
		}
		if (isAlertPage || isUntrustedSite || bd_nd_whitelist)
		{
			hui_container.style.top = '0px';
			hui_visible = true;
		}
		
		document.body.appendChild(hui_container);
		
		if (isProductOn)
		{
			this.CreateStatus(isAlertPage ? STATUS_NOK : (isUntrustedSite ? STATUS_UNTRUSTED : (bd_nd_whitelist ? STATUS_NOK : STATUS_OK)));
		}else
		{
			this.CreateStatus(STATUS_DISABLED);
		}
		
		this.CreateTitle();
		this.CreateSeparator();
		if (this.canEmbed())
		{
			this.CreateTool("tooltip_3", "<img src='' border='0' style='margin:9px 6px 0 6px;float:left;display:block;'/>", (this.IsSandBoxAvailable() ? bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.tool_3_tooltip : bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.tool_3_tooltip_xp), this.OnTool3Click, this.IsSandBoxAvailable());
            this.CreateSeparator();
            this.CreateTool("tooltip_4", "<img src='' border='0' style='margin:9px 17px 0 17px;float:left;display:block;'/>", bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.tool_settings_tooltip, this.OnTool4Click, true);
			this.CreateSeparator();
		}
		else
		{

			this.CreateTool("tooltip_3", "<img src='/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/icon2.png' border='0' style='margin:9px 6px 0 6px;float:left;display:block;'/>", (this.IsSandBoxAvailable() ? bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.tool_3_tooltip : bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.tool_3_tooltip_xp), this.OnTool3Click, this.IsSandBoxAvailable());
            this.CreateSeparator();
			this.CreateTool("tooltip_4", "<img src='/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/hui/images/settings.png' border='0' style='margin:9px 17px 0 17px;float:left;display:block;'/>", bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.tool_settings_tooltip, this.OnTool4Click, true);
			this.CreateSeparator();
		}
		this.CreateOnOff(isProductOn , "ON/OFF");
		this.CreateDragger(bd_nd_E893A5F3FE87409FB167F51A030D021C_strings.tool_dragger);
		this.CreateSettingsPage();
		//add click event for document to close hui on outside click
		bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.add("onclick",bd_nd_E893A5F3FE87409FB167F51A030D021C_click_outside,document);
		
	}//end init
}

function bd_nd_E893A5F3FE87409FB167F51A030D021C_onOffChanged(index, status)
	{
		currentFeature = document.getElementById(bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.GetID('onoff'));
		if(null != currentFeature)
		{
			//update sender according to the new status
			if (1 == status)
			{
				currentFeature.className = bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.GetID('onoff') + " " + bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.GetID('onoff_on') + (bd_nd_supervisor ? "" : "_unavailable");
			}else
			if (0 == status)
			{
				currentFeature.className = bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.GetID('onoff') + " " + bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.GetID('onoff_off') + (bd_nd_supervisor ? "" : "_unavailable");
			}else
			{
				
			}
		}		
	}

function bd_nd_E893A5F3FE87409FB167F51A030D021C_statusChanged(index, status)
{
	currentFeature = document.getElementById(bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.GetID(index));
	if(null != currentFeature)
	{
		//update sender according to the new status
		if (1 == status)
		{
			currentFeature.className = bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.GetID('settings_btn_status') + " " + bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.GetID('settings_btn_status_on');				
		}else
		if (0 == status)
		{
			currentFeature.className = bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.GetID('settings_btn_status') + " " + bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.GetID('settings_btn_status_off');
		}else
		{
			//error shit happend
		}
	}		
}
function bd_nd_E893A5F3FE87409FB167F51A030D021C_click_outside(e)
{
	if (false == bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.IsHuiVisible())
	{
		//hui is not visible
		return;
	}
	var bd_nd_E893A5F3FE87409FB167F51A030D021C_target = bd_nd_E893A5F3FE87409FB167F51A030D021C_evt.getEventTarget(e); 									
	var bd_nd_E893A5F3FE87409FB167F51A030D021C_id = bd_nd_E893A5F3FE87409FB167F51A030D021C_target.id;       
  
    if(bd_nd_E893A5F3FE87409FB167F51A030D021C_id.indexOf('tf_hui_container') != -1)
    {
		//the user clicked on HUI
		return;
    }

	while(typeof(bd_nd_E893A5F3FE87409FB167F51A030D021C_target.parentNode) != 'undefined' && bd_nd_E893A5F3FE87409FB167F51A030D021C_target.parentNode != null)
	{
		bd_nd_E893A5F3FE87409FB167F51A030D021C_target = bd_nd_E893A5F3FE87409FB167F51A030D021C_target.parentNode;
		bd_nd_E893A5F3FE87409FB167F51A030D021C_id = bd_nd_E893A5F3FE87409FB167F51A030D021C_target.id;
		
		if (bd_nd_E893A5F3FE87409FB167F51A030D021C_id != 'undefined' && bd_nd_E893A5F3FE87409FB167F51A030D021C_id != null)
		{			
			if(typeof(bd_nd_E893A5F3FE87409FB167F51A030D021C_id) == 'string' && bd_nd_E893A5F3FE87409FB167F51A030D021C_id.indexOf('tf_hui_container') != -1)
			{
				//the user clicked on a HUI child
				return;
			}			
		}
	}//end while
	//call on dragger click to close hui
	bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.OnDraggerClick(e);
}
if (!window.rwctrd)
{
	if (bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.canEmbed())
	{
		bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.Init();
	}
	else
	{
		window.attachEvent("onload", bd_nd_E893A5F3FE87409FB167F51A030D021C_tfHUI.Init());
	}
}
//]]>
</script>
<script type='text/javascript' language='javascript'>
//<![CDATA[

var bd_nd_B937DB990D1548698380D65CF906E308 = 
{

	ICON_WAIT       : "/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/ls/icons/wait.gif",
	ICON_OK       	: "/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/ls/icons/ok.png",
	ICON_NOK       	: "/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/ls/icons/nok.png",
	ICON_WARN       : "/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/ls/icons/warn.png",
	ICON_ERR       	: "/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/ls/icons/err.png",
	ID_PREFIX	    : "bd_nd_B937DB990D1548698380D65CF906E308_",
	ID_POSTFIX	    : "_tooltip",
	HEADER_NAME		: "BDNDLS_F9CD80F3B79B49ABAD166F61BFFFC81B",
	
	FRAUD_THRESHOLD	: 90,
	
	STATUS_NONE		: 0,
	STATUS_ADDED	: 1,
	STATUS_WAIT		: 2,
	STATUS_READY	: 3,

	links			: null,	
	iconWait		: null,
	iconOK			: null,
	iconNOK			: null,
	iconWarn		: null,
	iconERR			: null,

	xmlhttp			: null,  
	dir 			: "ltr",
	
	imgIconWait		: null,
	
	//TEMPLATE START
	
		/*BEGIN_TRANSLATABLE_TEXT*/
	title : "Bitdefender 2012",

	ok_title: "Diese Seite ist sicher",
	ok_content: "Auf dieser Seite wurden keine verdächtigen Elemente gefunden.",

	err_title: "Diese Seite konnte nicht verifiziert werden.",
	err_content: "Diese Seite konnte dieses Mal nicht gescannt werden.",

	nok_title: "Diese Seite ist nicht sicher",
	nok_content: "Es wurden Elemente gefunden, die Ihrem Computer schaden könnten.",

	wait_title: "Diese Seite wird gerade gescannt.",
	wait_content: "Bitte warten Sie, während diese Seite gescannt wird.",

	warn_title: "This page might be unsafe",
	warn_content: "We detect elements that may harm your computer.",
	/*END_TRANSLATABLE_TEXT*/

	TOOLTIP_WAIT       	: "/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/ls/tooltips/wait.png",
	TOOLTIP_OK       	: "/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/ls/tooltips/ok.png",
	TOOLTIP_NOK       	: "/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/ls/tooltips/nok.png",
	TOOLTIP_WARN       	: "/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/ls/tooltips/warn.png",
	TOOLTIP_ERR       	: "/F9CD80F3-B79B-49AB-AD16-6F61BFFFC81B/netdefender/ls/tooltips/err.png",

	tooltipWait				: null,
	tooltipOK				: null,
	tooltipNOK				: null,
	tooltipWarn				: null,
	tooltipERR				: null,
		
	createToolTip : function()
	{
		var body = document.getElementsByTagName("body")[0];
		var tooltip;
		var tooltipImg;
		var tooltipTitle;
		var tooltipTitle1;
		var tooltipContent;
		
		tooltip 						= document.createElement("div");
		tooltip.id					= "bd_nd_B937DB990D1548698380D65CF906E308_TOOLTIP";
		tooltip.style.display 	= "none";
		tooltip.style.zIndex 	= 1000;
		tooltip.style.position 	= "absolute";
		tooltip.style.width 		= "194pt";
		tooltip.style.height 	= "70pt";
		tooltip.style.left 		= "0pt";
		tooltip.style.top 		= "0pt";

			bd_nd_B937DB990D1548698380D65CF906E308.tooltipWait					= new String(); 
			bd_nd_B937DB990D1548698380D65CF906E308.tooltipOK					= new String(); 
			bd_nd_B937DB990D1548698380D65CF906E308.tooltipNOK					= new String(); 
			bd_nd_B937DB990D1548698380D65CF906E308.tooltipWarn					= new String(); 
			bd_nd_B937DB990D1548698380D65CF906E308.tooltipErr					= new String(); 
			
		if (bd_nd_B937DB990D1548698380D65CF906E308.canEmbed())
			{		
			bd_nd_B937DB990D1548698380D65CF906E308.tooltipWait					= "";
			bd_nd_B937DB990D1548698380D65CF906E308.tooltipOK					= "";
			bd_nd_B937DB990D1548698380D65CF906E308.tooltipNOK					= "";
			bd_nd_B937DB990D1548698380D65CF906E308.tooltipWarn					= "";
			bd_nd_B937DB990D1548698380D65CF906E308.tooltipErr					= "";
		}
		else
		{
			bd_nd_B937DB990D1548698380D65CF906E308.tooltipWait			= bd_nd_B937DB990D1548698380D65CF906E308.TOOLTIP_WAIT; 
			bd_nd_B937DB990D1548698380D65CF906E308.tooltipOK			= bd_nd_B937DB990D1548698380D65CF906E308.TOOLTIP_OK; 
			bd_nd_B937DB990D1548698380D65CF906E308.tooltipNOK			= bd_nd_B937DB990D1548698380D65CF906E308.TOOLTIP_NOK; 
			bd_nd_B937DB990D1548698380D65CF906E308.tooltipWarn			= bd_nd_B937DB990D1548698380D65CF906E308.TOOLTIP_WARN; 
			bd_nd_B937DB990D1548698380D65CF906E308.tooltipErr			= bd_nd_B937DB990D1548698380D65CF906E308.TOOLTIP_ERR;
		}
		tooltipImg					= document.createElement("img");
		tooltipImg.id				= "bd_nd_B937DB990D1548698380D65CF906E308_TOOLTIP_IMG";
		tooltipImg.style.border	= "none 0pt #000000";
		tooltipImg.style.width 		= "194pt";
		tooltipImg.style.height 	= "70pt";

		tooltipTitle = document.createElement("div");
		tooltipTitle.id = "bd_nd_B937DB990D1548698380D65CF906E308_TOOLTIP_TITLE";
		tooltipTitle.style.position = "absolute";
		tooltipTitle.style.top = "5pt";
		tooltipTitle.style.left = "6pt";
		tooltipTitle.style.width = "100%";
		tooltipTitle.style.height = "20pt";
		tooltipTitle.style.visibility = "hidden";
		tooltipTitle.innerHTML = bd_nd_B937DB990D1548698380D65CF906E308.title;
		tooltipTitle.style.color = "#FFFFFF";
		tooltipTitle.style.fontSize="10pt";
		
		tooltipTitle1 = document.createElement("div");
		tooltipTitle1.id = "bd_nd_B937DB990D1548698380D65CF906E308_TOOLTIP_TITLE1";
		tooltipTitle1.style.position = "absolute";
		tooltipTitle1.style.top = "25pt";
		tooltipTitle1.style.left = "6pt";
		tooltipTitle1.style.width = "100%";
		tooltipTitle1.style.height = "25pt";
		tooltipTitle1.style.visibility = "hidden";
		tooltipTitle1.innerHTML = bd_nd_B937DB990D1548698380D65CF906E308.wait_title;
		tooltipTitle1.style.color = "#FFFFFF";
		tooltipTitle1.style.fontSize="10pt";
		tooltipTitle1.style.fontWeight="bold";

		tooltipContent = document.createElement("div");
		tooltipContent.id = "bd_nd_B937DB990D1548698380D65CF906E308_TOOLTIP_CONTENT";
		tooltipContent.style.position = "absolute";
		tooltipContent.style.top = "42pt";
		tooltipContent.style.left = "6pt";
		tooltipContent.style.width = "70%";
		tooltipContent.style.height = "25pt";
		tooltipContent.style.visibility = "hidden";
		tooltipContent.innerHTML = bd_nd_B937DB990D1548698380D65CF906E308.wait_content;
		tooltipContent.style.color = "#FFFFFF";
		tooltipContent.style.fontSize="9pt";

		tooltip.appendChild(tooltipImg);
		tooltip.appendChild(tooltipTitle);
		tooltip.appendChild(tooltipTitle1);
		tooltip.appendChild(tooltipContent);
		body.appendChild(tooltip);		
		tooltipImg.src				= bd_nd_B937DB990D1548698380D65CF906E308.tooltipWait;		
	},
	
	/*
		var result = 
		{
			url: "url",
			status: 0,       //if != 0 => error
			rbl: 0,          //0 == none; 1 == malware; 2 == phishing; 3 == ???
			fraud: 
			{
				score: 0,     //if >= fraudThreshold => BAD, else WARNING
				reasons: []   //reasons
			}
		};
	*/
	showToolTip : function(url, scanstatus, result, fraudThreshold, x, y)
	{
		var tooltip = document.getElementById("bd_nd_B937DB990D1548698380D65CF906E308_TOOLTIP");
		var tooltipImg = document.getElementById("bd_nd_B937DB990D1548698380D65CF906E308_TOOLTIP_IMG");
		var tooltipTitle = document.getElementById("bd_nd_B937DB990D1548698380D65CF906E308_TOOLTIP_TITLE");
		var tooltipTitle1 = document.getElementById("bd_nd_B937DB990D1548698380D65CF906E308_TOOLTIP_TITLE1");
		var tooltipContent = document.getElementById("bd_nd_B937DB990D1548698380D65CF906E308_TOOLTIP_CONTENT");
		
		if ( (null == tooltip ) || (null == tooltipImg) || (null == tooltipTitle) || (null == tooltipTitle1)  || (null == tooltipContent) )
		{
			return;
		}
		if (bd_nd_B937DB990D1548698380D65CF906E308.STATUS_READY == scanstatus)
		{
			if (0 != result.status) //error
			{
				tooltipImg.src		= bd_nd_B937DB990D1548698380D65CF906E308.tooltipErr;
				tooltipTitle1.innerHTML = bd_nd_B937DB990D1548698380D65CF906E308.err_title;
				tooltipContent.innerHTML = bd_nd_B937DB990D1548698380D65CF906E308.err_content;
			}
			else
			{
				if (0 == result.rbl && 0 == result.fraud.score)
				{
					tooltipImg.src		= bd_nd_B937DB990D1548698380D65CF906E308.tooltipOK;	
					tooltipTitle1.innerHTML = bd_nd_B937DB990D1548698380D65CF906E308.ok_title;
					tooltipContent.innerHTML = bd_nd_B937DB990D1548698380D65CF906E308.ok_content;
				}
				else
				if ((0 != result.rbl && 8 != result.rbl) || fraudThreshold <= result.fraud.score)
				{
					tooltipImg.src		= bd_nd_B937DB990D1548698380D65CF906E308.tooltipNOK;								
					tooltipTitle1.innerHTML = bd_nd_B937DB990D1548698380D65CF906E308.nok_title;
					tooltipContent.innerHTML = bd_nd_B937DB990D1548698380D65CF906E308.nok_content;
				}
				else
				{
					tooltipImg.src		= bd_nd_B937DB990D1548698380D65CF906E308.tooltipWarn;
					tooltipTitle1.innerHTML = bd_nd_B937DB990D1548698380D65CF906E308.warn_title;
					tooltipContent.innerHTML = bd_nd_B937DB990D1548698380D65CF906E308.warn_content;
				}
			}
		}
		else //not ready
		{
			tooltipImg.src			= bd_nd_B937DB990D1548698380D65CF906E308.tooltipWait;
			tooltipTitle1.innerHTML = bd_nd_B937DB990D1548698380D65CF906E308.wait_title;
			tooltipContent.innerHTML = bd_nd_B937DB990D1548698380D65CF906E308.wait_content;
		}

		tooltip.style.left		= x + "px";
		tooltip.style.top			= y + "px";
		tooltip.style.display 	= "block";
		tooltipTitle.style.visibility="visible";
		tooltipTitle1.style.visibility="visible";
		tooltipContent.style.visibility="visible";
	},
	
	hideToolTip : function()
	{
		var tooltip;
		
		if (null == (tooltip = document.getElementById("bd_nd_B937DB990D1548698380D65CF906E308_TOOLTIP")))
		{
			return;
		}	
		tooltip.style.display 	= "none";
		tooltipTitle.style.visibility="hidden";
		tooltipTitle1.style.visibility="hidden";
		tooltipContent.style.visibility="hidden";
	},
	

	
	//TEMPLATE END
	
	getDir : function()
	{
		if (document.body.currentStyle)
		{
			return document.body.currentStyle["direction"];
		}
		else
		if (window.getComputedStyle)
		{
			return document.defaultView.getComputedStyle(document.body, null).getPropertyValue("direction");
		}
		else
		{
			return "ltr";
		}	
	},
	
	getPos : function(elem) 
	{
		var pa = { x: elem.offsetLeft, y: elem.offsetTop };   
		if (elem.offsetParent)
		{
			var p = bd_nd_B937DB990D1548698380D65CF906E308.getPos(elem.offsetParent);
			pa.x += p.x;
			pa.y += p.y;
		}
   
		return pa;
	},
	
	canEmbed : function()
	{
		var rv = -1; 

		if (navigator.appName != 'Microsoft Internet Explorer')
		{
			return true;
		}
		
		var ua = navigator.userAgent;
		var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
		if (re.exec(ua) != null)
		{
			rv = parseFloat(RegExp.$1);
		}
		if (rv >= 8.0)
		{
			return true;
		}
		
		return false;
	},
	
	isPageOK : function()
	{
		if (typeof(window.top) != 'object')
		{
			if (window.parent != window)
			{
				return false;
			}
		}

		return true;
	},
	
	init : function()
	{
		if (!bd_nd_B937DB990D1548698380D65CF906E308.isPageOK())
		{
			return;
		}
		
		bd_nd_B937DB990D1548698380D65CF906E308.iconWait			= new String(); 
		bd_nd_B937DB990D1548698380D65CF906E308.iconOK			= new String(); 		
		bd_nd_B937DB990D1548698380D65CF906E308.iconNOK			= new String(); 
		bd_nd_B937DB990D1548698380D65CF906E308.iconWarn			= new String(); 
		bd_nd_B937DB990D1548698380D65CF906E308.iconERR			= new String(); 
			
		if (bd_nd_B937DB990D1548698380D65CF906E308.canEmbed())
		{
			bd_nd_B937DB990D1548698380D65CF906E308.iconWait		= ""; 
			bd_nd_B937DB990D1548698380D65CF906E308.iconOK		= ""; 
			bd_nd_B937DB990D1548698380D65CF906E308.iconNOK		= ""; 
			bd_nd_B937DB990D1548698380D65CF906E308.iconWarn		= ""; 
			bd_nd_B937DB990D1548698380D65CF906E308.iconERR		= ""; 
		}
		else
		{
			bd_nd_B937DB990D1548698380D65CF906E308.iconWait		= bd_nd_B937DB990D1548698380D65CF906E308.ICON_WAIT; 
			bd_nd_B937DB990D1548698380D65CF906E308.iconOK		= bd_nd_B937DB990D1548698380D65CF906E308.ICON_OK; 
			bd_nd_B937DB990D1548698380D65CF906E308.iconNOK		= bd_nd_B937DB990D1548698380D65CF906E308.ICON_NOK; 
			bd_nd_B937DB990D1548698380D65CF906E308.iconWarn		= bd_nd_B937DB990D1548698380D65CF906E308.ICON_WARN; 
			bd_nd_B937DB990D1548698380D65CF906E308.iconERR		= bd_nd_B937DB990D1548698380D65CF906E308.ICON_ERR; 
		}
		bd_nd_B937DB990D1548698380D65CF906E308.createToolTip();

		bd_nd_B937DB990D1548698380D65CF906E308.imgIconWait		= document.createElement("img");
		bd_nd_B937DB990D1548698380D65CF906E308.imgIconWait.src = bd_nd_B937DB990D1548698380D65CF906E308.iconWait;

		bd_nd_B937DB990D1548698380D65CF906E308.dir					= bd_nd_B937DB990D1548698380D65CF906E308.getDir();
		if (window.XMLHttpRequest) 
		{      
			bd_nd_B937DB990D1548698380D65CF906E308.xmlhttp 			= new XMLHttpRequest(); 
		}
		else 
		if (window.ActiveXObject)
		{  
			bd_nd_B937DB990D1548698380D65CF906E308.xmlhttp 			= new ActiveXObject("Microsoft.XMLHTTP");
		}
	},
		
	handleResponse : function(xml)
	{
		var roottag = xml.getElementsByTagName("netdefender")[0];
		if (null == roottag)
		{
			return;
		}
		for (i = 0; i < roottag.childNodes.length; i++)
		{
			if ("url" == roottag.childNodes[i].tagName)
			{
				var status = roottag.childNodes[i].getAttribute("status");
				if (null != status)
				{
					var result = 
					{
						url: "",
						status: -1000,
						rbl: 0,
						fraud: 
						{
							score: 0,
							reasons: []
						}
					};
				
					if (null != status)
					{
						status = parseInt(status);
						if (isNaN(status))
						{
							status = -1002;
						}
					}
					else
					{
						status = -1001;
					}
					var ok = 0;
					var urltag = roottag.childNodes[i];
					for (j = 0; j < urltag.childNodes.length; j++)
					{
						if ("value" == urltag.childNodes[j].tagName)
						{
							var value = urltag.childNodes[j].childNodes[0].nodeValue;
							if (null != value)
							{
								result.url = value;
								ok++;
							}
						}
					}
					if (0 == status)
					{
						for (j = 0; j < urltag.childNodes.length; j++)
						{
							if ("result" == urltag.childNodes[j].tagName)
							{
								if ("urlbl" == urltag.childNodes[j].getAttribute("type"))
								{
									var rbltag = urltag.childNodes[j];
									for (k = 0; k < rbltag.childNodes.length; k++)
									{
										if ("value" == rbltag.childNodes[k].tagName)
										{
											var value = parseInt(rbltag.childNodes[k].childNodes[0].nodeValue);
											if (!isNaN(value))
											{
												result.rbl = value;
												ok++;
											}
											break;
										}
									}
								}
								else
								if ("fraud" == urltag.childNodes[j].getAttribute("type"))
								{
									var fraudtag = urltag.childNodes[j];
									for (k = 0; k < fraudtag.childNodes.length; k++)
									{
										if ("score" == fraudtag.childNodes[k].tagName)
										{
											var score = parseInt(fraudtag.childNodes[k].childNodes[0].nodeValue);
											if (!isNaN(score))
											{
												result.fraud.score = score;
												ok++;
											}
										}
										else
										if ("reasons" == fraudtag.childNodes[k].tagName)
										{
											reasonstag = fraudtag.childNodes[k];
											for (l = 0; l < reasonstag.childNodes.length; l++)
											{
												if ("reason" == reasonstag.childNodes[l].tagName)
												{
													result.fraud.reasons.push(reasonstag.childNodes[l].childNodes[0].nodeValue);
													ok++;
												}
											}
										}
									}
								}
							}
						}
					}
					result.status = status;	
					if (2 > ok )
					{
						result.status = -1003;
					}
					for (var x = 0; x < bd_nd_B937DB990D1548698380D65CF906E308.links.length; x++)
					{
						if (bd_nd_B937DB990D1548698380D65CF906E308.STATUS_WAIT == bd_nd_B937DB990D1548698380D65CF906E308.links[x][1] && 
							 bd_nd_B937DB990D1548698380D65CF906E308.links[x][0].href == result.url)
						{
							var icon_id	= bd_nd_B937DB990D1548698380D65CF906E308.ID_PREFIX + x;
							var icon		= document.getElementById(icon_id);
							if (null != icon)
							{
								icon.style.width	= "16px";
								icon.style.height	= "16px";
								if (0 != result.status)
								{
									icon.src = bd_nd_B937DB990D1548698380D65CF906E308.iconERR;
								}
								else
								{
									if (0 == result.rbl && 0 == result.fraud.score)
									{
										icon.src = bd_nd_B937DB990D1548698380D65CF906E308.iconOK;
									}
									else
									if ((0 != result.rbl && 8 != result.rbl) || bd_nd_B937DB990D1548698380D65CF906E308.FRAUD_THRESHOLD <= result.fraud.score)
									{
										icon.src = bd_nd_B937DB990D1548698380D65CF906E308.iconNOK;										
									}
									else
									{
										icon.src = bd_nd_B937DB990D1548698380D65CF906E308.iconWarn;
									}
								}
							}
							bd_nd_B937DB990D1548698380D65CF906E308.links[x][1] = bd_nd_B937DB990D1548698380D65CF906E308.STATUS_READY;
							bd_nd_B937DB990D1548698380D65CF906E308.links[x][2] = result;
						}
					}					
					
				}
			}
		}
	},
	
	addLink : function(link)
	{
		if (null == bd_nd_B937DB990D1548698380D65CF906E308.links)
		{
			bd_nd_B937DB990D1548698380D65CF906E308.links = new Array();
		}
		for (i = 0; i < bd_nd_B937DB990D1548698380D65CF906E308.links.length; i++)
		{
			if (link == bd_nd_B937DB990D1548698380D65CF906E308.links[i][0])
			{
				return;
			}
		}		
		bd_nd_B937DB990D1548698380D65CF906E308.links.push(new Array(link, bd_nd_B937DB990D1548698380D65CF906E308.STATUS_NONE, 0));
	},
	
	processLinks : function()
	{
		if (null == bd_nd_B937DB990D1548698380D65CF906E308.links)
		{
			return;
		}
		for (i = 0; i < bd_nd_B937DB990D1548698380D65CF906E308.links.length; i++)
		{
			if (bd_nd_B937DB990D1548698380D65CF906E308.STATUS_NONE == bd_nd_B937DB990D1548698380D65CF906E308.links[i][1])
			{
				var icon_id  		= bd_nd_B937DB990D1548698380D65CF906E308.ID_PREFIX + i;
				var icon				= null;
				icon 					= document.createElement("img");
				icon.id 				= icon_id;
				icon.style.border	= "0px";
				icon.style.cursor = "pointer";
				icon.src				= bd_nd_B937DB990D1548698380D65CF906E308.imgIconWait.src;
				if ("rtl" == bd_nd_B937DB990D1548698380D65CF906E308.dir)
				{
					bd_nd_B937DB990D1548698380D65CF906E308.links[i][0].parentNode.insertBefore(icon, bd_nd_B937DB990D1548698380D65CF906E308.links[i][0]);
				}
				else
				{
					bd_nd_B937DB990D1548698380D65CF906E308.links[i][0].parentNode.insertBefore(icon, bd_nd_B937DB990D1548698380D65CF906E308.links[i][0]);
				}
				if (window.addEventListener)
				{
					icon.addEventListener("mouseover", bd_nd_B937DB990D1548698380D65CF906E308.onMouseOver, false);
					icon.addEventListener("mouseout", bd_nd_B937DB990D1548698380D65CF906E308.onMouseOut, false);
					icon.addEventListener("click", bd_nd_B937DB990D1548698380D65CF906E308.onClickLink, false);

				}
				else
				if (window.attachEvent)
				{
					icon.attachEvent("onmouseover", bd_nd_B937DB990D1548698380D65CF906E308.onMouseOver);
					icon.attachEvent("onmouseout", bd_nd_B937DB990D1548698380D65CF906E308.onMouseOut);
					icon.attachEvent("onclick", bd_nd_B937DB990D1548698380D65CF906E308.onClickLink);
				}
				bd_nd_B937DB990D1548698380D65CF906E308.links[i][1] = bd_nd_B937DB990D1548698380D65CF906E308.STATUS_ADDED;
			}
		}
		if (null == bd_nd_B937DB990D1548698380D65CF906E308.xmlhttp)
		{
			return;
		}
		bd_nd_B937DB990D1548698380D65CF906E308.xmlhttp.onreadystatechange = function()
		{
			if (4 == bd_nd_B937DB990D1548698380D65CF906E308.xmlhttp.readyState)
			{
				bd_nd_B937DB990D1548698380D65CF906E308.handleResponse(bd_nd_B937DB990D1548698380D65CF906E308.xmlhttp.responseXML);
			}    
		}
		var links	= new Array();
		var sid		= Math.random();
		bd_nd_B937DB990D1548698380D65CF906E308.xmlhttp.open("GET", sid, true);
		for (i = 0; i < bd_nd_B937DB990D1548698380D65CF906E308.links.length; i++)
		{
			if (bd_nd_B937DB990D1548698380D65CF906E308.STATUS_ADDED == bd_nd_B937DB990D1548698380D65CF906E308.links[i][1])
			{
				var found = false;
				for (j = 0; j < links.length; j++)
				{
					if (links[j] == bd_nd_B937DB990D1548698380D65CF906E308.links[i][0].href)
					{
						found = true;
						break;
					}
				}
				if (!found)
				{
					bd_nd_B937DB990D1548698380D65CF906E308.links[i][1] = bd_nd_B937DB990D1548698380D65CF906E308.STATUS_WAIT;
					bd_nd_B937DB990D1548698380D65CF906E308.xmlhttp.setRequestHeader(bd_nd_B937DB990D1548698380D65CF906E308.HEADER_NAME + i, 
				                                                                bd_nd_B937DB990D1548698380D65CF906E308.links[i][0].href);
					links.push(bd_nd_B937DB990D1548698380D65CF906E308.links[i][0].href);
				}
			}
		}
		if (0 < links.length)
		{
			bd_nd_B937DB990D1548698380D65CF906E308.xmlhttp.send(null);
		}
	},
	
	onMouseOver : function()
	{
		var obj;
		if (typeof event != "undefined")
		{
			obj = event.srcElement?event.srcElement:event.target;
		}
		else
		{
			obj = this;
		}
		var idx 		= parseInt(obj.id.substr(bd_nd_B937DB990D1548698380D65CF906E308.ID_PREFIX.length));
		if (0 > idx || idx >= bd_nd_B937DB990D1548698380D65CF906E308.links.length)
		{
			return;
		}
		var p 		= bd_nd_B937DB990D1548698380D65CF906E308.getPos(obj);
		bd_nd_B937DB990D1548698380D65CF906E308.showToolTip(bd_nd_B937DB990D1548698380D65CF906E308.links[idx][0].href, 
		                                                   bd_nd_B937DB990D1548698380D65CF906E308.links[idx][1], 
		                                                   bd_nd_B937DB990D1548698380D65CF906E308.links[idx][2], 
																			bd_nd_B937DB990D1548698380D65CF906E308.FRAUD_THRESHOLD,
																			p.x, p.y + 18);
	},

	onMouseOut : function()
	{
		var obj;
		if (typeof event != "undefined")
		{
			obj = event.srcElement?event.srcElement:event.target;
		}
		else
		{
			obj = this;
		}
		bd_nd_B937DB990D1548698380D65CF906E308.hideToolTip();
	},
	
		
	onClickLink : function(e)
	{
		var obj;
		if (typeof event != "undefined")
		{
			obj = event.srcElement?event.srcElement:event.target;
		}
		else
		{
			obj = this;
		}
		var idx 		= parseInt(obj.id.substr(bd_nd_B937DB990D1548698380D65CF906E308.ID_PREFIX.length));
		if (0 > idx || idx >= bd_nd_B937DB990D1548698380D65CF906E308.links.length)
		{
			return;
		}	
		var url = "http://trafficlight.bitdefender.com/info?url=" + escape(bd_nd_B937DB990D1548698380D65CF906E308.links[idx][0].href) + "&language=en_US";
		window.open(url, "_blank");
	},
	
	start : function()
	{
		if (document.images)
		{
			bd_nd_B937DB990D1548698380D65CF906E308.init();
		}
	}
};


//]]>
</script>
<script type='text/javascript' language='javascript'>
//<![CDATA[

var bd_nd_google_B937DB990D1548698380D65CF906E308 = 
{

	ANCHOR_CLASS_NAME1	: "l",
	ANCHOR_CLASS_NAME2	: "l noline",
	CLASS_R				: "r",
	CLASS_G				: "g",
	CLASS_S				: "s",
	CLASS_SHOPPING		: "pslimain",
	MANGLED_URL			: "/interstitial?url=",
	TIMEOUT				: 3000,

	parseURL : function(url)
	{
		var pos = url.indexOf(MANGLED_URL);
		if (pos != -1)
		{
			return url.substr(pos + MANGLED_URL.length);
		}
		return url;
	},

	findClass : function(where, what)
	{
		var pos = 0;
		if (where == what)
		{
			return true;
		}
		where = "" + where;
		pos = where.indexOf(what + " ");
		if (pos == 0)
		{
			return true;
		}
		pos = where.indexOf(" " + what);
		if (pos != -1 && pos == where.length - what.length - 1)
		{
			return true;
		}
		pos = where.indexOf(" " + what + " ");
		if (pos != -1)
		{
			return true;
		}
		return false;
	},

	updateLinks : function()
	{
		var anchors  = document.getElementsByTagName("a"); 
		if (null != anchors)
		{
			for (var i = 0; i < anchors.length; i++)
			{ 
				var link = null;
				if (bd_nd_google_B937DB990D1548698380D65CF906E308.findClass(anchors[i].className , bd_nd_google_B937DB990D1548698380D65CF906E308.ANCHOR_CLASS_NAME1) || 
				    bd_nd_google_B937DB990D1548698380D65CF906E308.findClass(anchors[i].className, bd_nd_google_B937DB990D1548698380D65CF906E308.ANCHOR_CLASS_NAME2))
				{
					if ("img" != anchors[i].firstChild.nodeName.toLowerCase())
					{
						link = anchors[i];
					}
				}
				else
				{
					var myParent = anchors[i].parentNode;
					if (bd_nd_google_B937DB990D1548698380D65CF906E308.findClass(myParent.className, bd_nd_google_B937DB990D1548698380D65CF906E308.CLASS_R))
					{			
						if (bd_nd_google_B937DB990D1548698380D65CF906E308.findClass(myParent.parentNode.parentNode, bd_nd_google_B937DB990D1548698380D65CF906E308.CLASS_G))
						{//books links
							link = anchors[i];
						}
						else
						if (bd_nd_google_B937DB990D1548698380D65CF906E308.findClass(myParent.parentNode.className, bd_nd_google_B937DB990D1548698380D65CF906E308.CLASS_S))
						{//translated links
							link = anchors[i];
						}
						else
						if (bd_nd_google_B937DB990D1548698380D65CF906E308.findClass(myParent.parentNode.className, bd_nd_google_B937DB990D1548698380D65CF906E308.CLASS_G))
						{//books links but not in a book page
							link = anchors[i];
						}	
		 				else
						if (bd_nd_google_B937DB990D1548698380D65CF906E308.findClass(myParent.parentNode.className, bd_nd_google_B937DB990D1548698380D65CF906E308.CLASS_SHOPPING))
						{//translated links
							link = anchors[i];
						}			 
					}
				}
				if (null != link)
				{
					bd_nd_B937DB990D1548698380D65CF906E308.addLink(link);
				}
			}
		}
		bd_nd_B937DB990D1548698380D65CF906E308.processLinks();		
		setTimeout("bd_nd_google_B937DB990D1548698380D65CF906E308.updateLinks()", bd_nd_google_B937DB990D1548698380D65CF906E308.TIMEOUT);
	},
	
	googleStart : function()
	{
		bd_nd_B937DB990D1548698380D65CF906E308.start();
		bd_nd_google_B937DB990D1548698380D65CF906E308.updateLinks();
	}

};

if (bd_nd_B937DB990D1548698380D65CF906E308.isPageOK())
{
	if (window.addEventListener)
	{
		window.addEventListener("load", bd_nd_google_B937DB990D1548698380D65CF906E308.googleStart, false);
	}
	else
	if (window.attachEvent)
	{
		window.attachEvent("onload", bd_nd_google_B937DB990D1548698380D65CF906E308.googleStart);
	}
}


//]]>
</script>
<script type="text/javascript">
 (function() {
 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
 (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(ga);
 })();
</script>
<div class="headbg">

 <div id="gaia">
 

 <span>
 
 
 <b>benjaminweinhardt1991@gmail.com</b>
 
 
 | <a href="/u/@VBNeQFBSARJBWwQ%3D/" id="projects-dropdown" onclick="return false;"
 ><u>My favorites</u> <small>&#9660;</small></a>
 | <a href="/u/@VBNeQFBSARJBWwQ%3D/" onclick="_CS_click('/gb/ph/profile');"
 title="Profile, Updates, and Settings"
 ><u>Profile</u></a>
 | <a href="https://www.google.com/accounts/Logout?continue=http%3A%2F%2Fcode.google.com%2Fp%2Fcodemplosion-profiles%2Fsource%2Fbrowse%2Ftrunk%2FPlugins%2FStuckHelper%2FStuckHelperFly.cs%3Fr%3D3" 
 onclick="_CS_click('/gb/ph/signout');"
 ><u>Sign out</u></a>
 
 </span>

 </div>

 <div class="gbh" style="left: 0pt;"></div>
 <div class="gbh" style="right: 0pt;"></div>
 
 
 <div style="height: 1px"></div>
<!--[if lte IE 7]>
<div style="text-align:center;">
Your version of Internet Explorer is not supported. Try a browser that
contributes to open source, such as <a href="http://www.firefox.com">Firefox</a>,
<a href="http://www.google.com/chrome">Google Chrome</a>, or
<a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame</a>.
</div>
<![endif]-->




 <table style="padding:0px; margin: 0px 0px 10px 0px; width:100%" cellpadding="0" cellspacing="0"
 itemscope itemtype="http://schema.org/CreativeWork">
 <tr style="height: 58px;">
 
 <td id="plogo">
 <link itemprop="url" href="/p/codemplosion-profiles">
 <a href="/p/codemplosion-profiles/">
 
 <img src="http://www.gstatic.com/codesite/ph/images/defaultlogo.png" alt="Logo" itemprop="image">
 
 </a>
 </td>
 
 <td style="padding-left: 0.5em">
 
 <div id="pname">
 <a href="/p/codemplosion-profiles/"><span itemprop="name">codemplosion-profiles</span></a>
 </div>
 
 <div id="psum">
 <a id="project_summary_link"
 href="/p/codemplosion-profiles/"><span itemprop="description">The SVN for CodeMplosion Profiles for Honorbuddy.</span></a>
 
 </div>
 
 
 </td>
 <td style="white-space:nowrap;text-align:right; vertical-align:bottom;">
 
 <form action="/hosting/search">
 <input size="30" name="q" value="" type="text">
 
 <input type="submit" name="projectsearch" value="Search projects" >
 </form>
 
 </tr>
 </table>

</div>

 
<div id="mt" class="gtb"> 
 <a href="/p/codemplosion-profiles/" class="tab ">Project&nbsp;Home</a>
 
 
 
 
 <a href="/p/codemplosion-profiles/downloads/list" class="tab ">Downloads</a>
 
 
 
 
 
 <a href="/p/codemplosion-profiles/w/list" class="tab ">Wiki</a>
 
 
 
 
 
 <a href="/p/codemplosion-profiles/issues/list"
 class="tab ">Issues</a>
 
 
 
 
 
 <a href="/p/codemplosion-profiles/source/checkout"
 class="tab active">Source</a>
 
 
 
 
 
 <div class=gtbc></div>
</div>
<table cellspacing="0" cellpadding="0" width="100%" align="center" border="0" class="st">
 <tr>
 
 
 
 
 
 
 <td class="subt">
 <div class="st2">
 <div class="isf">
 
 


 <span class="inst1"><a href="/p/codemplosion-profiles/source/checkout">Checkout</a></span> &nbsp;
 <span class="inst2"><a href="/p/codemplosion-profiles/source/browse/">Browse</a></span> &nbsp;
 <span class="inst3"><a href="/p/codemplosion-profiles/source/list">Changes</a></span> &nbsp;
 
 <form action="http://www.google.com/codesearch" method="get" style="display:inline"
 onsubmit="document.getElementById('codesearchq').value = document.getElementById('origq').value + ' package:http://codemplosion-profiles\\.googlecode\\.com'">
 <input type="hidden" name="q" id="codesearchq" value="">
 <input type="text" maxlength="2048" size="38" id="origq" name="origq" value="" title="Google Code Search" style="font-size:92%">&nbsp;<input type="submit" value="Search Trunk" name="btnG" style="font-size:92%">
 
 
 
 </form>
 </div>
</div>

 </td>
 
 
 
 <td align="right" valign="top" class="bevel-right"></td>
 </tr>
</table>


<script type="text/javascript">
 var cancelBubble = false;
 function _go(url) { document.location = url; }
</script>
<div id="maincol"
 
>

 
<!-- IE -->




<div class="expand">
<div id="colcontrol">
<style type="text/css">
 #file_flipper { white-space: nowrap; padding-right: 2em; }
 #file_flipper.hidden { display: none; }
 #file_flipper .pagelink { color: #0000CC; text-decoration: underline; }
 #file_flipper #visiblefiles { padding-left: 0.5em; padding-right: 0.5em; }
</style>
<table id="nav_and_rev" class="list"
 cellpadding="0" cellspacing="0" width="100%">
 <tr>
 
 <td nowrap="nowrap" class="src_crumbs src_nav" width="33%">
 <strong class="src_nav">Source path:&nbsp;</strong>
 <span id="crumb_root">
 
 <a href="/p/codemplosion-profiles/source/browse/?r=3">svn</a>/&nbsp;</span>
 <span id="crumb_links" class="ifClosed"><a href="/p/codemplosion-profiles/source/browse/trunk/?r=3">trunk</a><span class="sp">/&nbsp;</span><a href="/p/codemplosion-profiles/source/browse/trunk/Plugins/?r=3">Plugins</a><span class="sp">/&nbsp;</span><a href="/p/codemplosion-profiles/source/browse/trunk/Plugins/StuckHelper/?r=3">StuckHelper</a><span class="sp">/&nbsp;</span>StuckHelperFly.cs</span>
 
 

 </td>
 
 
 <td nowrap="nowrap" width="33%" align="center">
 <a href="/p/codemplosion-profiles/source/browse/trunk/Plugins/StuckHelper/StuckHelperFly.cs?r=3&edit=1"
 ><img src="http://www.gstatic.com/codesite/ph/images/pencil-y14.png"
 class="edit_icon">Edit file</a>
 </td>
 
 
 <td nowrap="nowrap" width="33%" align="right">
 <table cellpadding="0" cellspacing="0" style="font-size: 100%"><tr>
 
 
 <td class="flipper"><b>r3</b></td>
 
 </tr></table>
 </td> 
 </tr>
</table>

<div class="fc">
 
 
 
<style type="text/css">
.undermouse span {
 background-image: url(http://www.gstatic.com/codesite/ph/images/comments.gif); }
</style>
<table class="opened" id="review_comment_area"
><tr>
<td id="nums">
<pre><table width="100%"><tr class="nocursor"><td></td></tr></table></pre>
<pre><table width="100%" id="nums_table_0"><tr id="gr_svn3_1"

><td id="1"><a href="#1">1</a></td></tr
><tr id="gr_svn3_2"

><td id="2"><a href="#2">2</a></td></tr
><tr id="gr_svn3_3"

><td id="3"><a href="#3">3</a></td></tr
><tr id="gr_svn3_4"

><td id="4"><a href="#4">4</a></td></tr
><tr id="gr_svn3_5"

><td id="5"><a href="#5">5</a></td></tr
><tr id="gr_svn3_6"

><td id="6"><a href="#6">6</a></td></tr
><tr id="gr_svn3_7"

><td id="7"><a href="#7">7</a></td></tr
><tr id="gr_svn3_8"

><td id="8"><a href="#8">8</a></td></tr
><tr id="gr_svn3_9"

><td id="9"><a href="#9">9</a></td></tr
><tr id="gr_svn3_10"

><td id="10"><a href="#10">10</a></td></tr
><tr id="gr_svn3_11"

><td id="11"><a href="#11">11</a></td></tr
><tr id="gr_svn3_12"

><td id="12"><a href="#12">12</a></td></tr
><tr id="gr_svn3_13"

><td id="13"><a href="#13">13</a></td></tr
><tr id="gr_svn3_14"

><td id="14"><a href="#14">14</a></td></tr
><tr id="gr_svn3_15"

><td id="15"><a href="#15">15</a></td></tr
><tr id="gr_svn3_16"

><td id="16"><a href="#16">16</a></td></tr
><tr id="gr_svn3_17"

><td id="17"><a href="#17">17</a></td></tr
><tr id="gr_svn3_18"

><td id="18"><a href="#18">18</a></td></tr
><tr id="gr_svn3_19"

><td id="19"><a href="#19">19</a></td></tr
><tr id="gr_svn3_20"

><td id="20"><a href="#20">20</a></td></tr
><tr id="gr_svn3_21"

><td id="21"><a href="#21">21</a></td></tr
><tr id="gr_svn3_22"

><td id="22"><a href="#22">22</a></td></tr
><tr id="gr_svn3_23"

><td id="23"><a href="#23">23</a></td></tr
><tr id="gr_svn3_24"

><td id="24"><a href="#24">24</a></td></tr
><tr id="gr_svn3_25"

><td id="25"><a href="#25">25</a></td></tr
><tr id="gr_svn3_26"

><td id="26"><a href="#26">26</a></td></tr
><tr id="gr_svn3_27"

><td id="27"><a href="#27">27</a></td></tr
><tr id="gr_svn3_28"

><td id="28"><a href="#28">28</a></td></tr
><tr id="gr_svn3_29"

><td id="29"><a href="#29">29</a></td></tr
><tr id="gr_svn3_30"

><td id="30"><a href="#30">30</a></td></tr
><tr id="gr_svn3_31"

><td id="31"><a href="#31">31</a></td></tr
><tr id="gr_svn3_32"

><td id="32"><a href="#32">32</a></td></tr
><tr id="gr_svn3_33"

><td id="33"><a href="#33">33</a></td></tr
><tr id="gr_svn3_34"

><td id="34"><a href="#34">34</a></td></tr
><tr id="gr_svn3_35"

><td id="35"><a href="#35">35</a></td></tr
><tr id="gr_svn3_36"

><td id="36"><a href="#36">36</a></td></tr
><tr id="gr_svn3_37"

><td id="37"><a href="#37">37</a></td></tr
><tr id="gr_svn3_38"

><td id="38"><a href="#38">38</a></td></tr
><tr id="gr_svn3_39"

><td id="39"><a href="#39">39</a></td></tr
><tr id="gr_svn3_40"

><td id="40"><a href="#40">40</a></td></tr
><tr id="gr_svn3_41"

><td id="41"><a href="#41">41</a></td></tr
><tr id="gr_svn3_42"

><td id="42"><a href="#42">42</a></td></tr
><tr id="gr_svn3_43"

><td id="43"><a href="#43">43</a></td></tr
><tr id="gr_svn3_44"

><td id="44"><a href="#44">44</a></td></tr
><tr id="gr_svn3_45"

><td id="45"><a href="#45">45</a></td></tr
><tr id="gr_svn3_46"

><td id="46"><a href="#46">46</a></td></tr
><tr id="gr_svn3_47"

><td id="47"><a href="#47">47</a></td></tr
><tr id="gr_svn3_48"

><td id="48"><a href="#48">48</a></td></tr
><tr id="gr_svn3_49"

><td id="49"><a href="#49">49</a></td></tr
><tr id="gr_svn3_50"

><td id="50"><a href="#50">50</a></td></tr
><tr id="gr_svn3_51"

><td id="51"><a href="#51">51</a></td></tr
><tr id="gr_svn3_52"

><td id="52"><a href="#52">52</a></td></tr
><tr id="gr_svn3_53"

><td id="53"><a href="#53">53</a></td></tr
><tr id="gr_svn3_54"

><td id="54"><a href="#54">54</a></td></tr
><tr id="gr_svn3_55"

><td id="55"><a href="#55">55</a></td></tr
><tr id="gr_svn3_56"

><td id="56"><a href="#56">56</a></td></tr
><tr id="gr_svn3_57"

><td id="57"><a href="#57">57</a></td></tr
><tr id="gr_svn3_58"

><td id="58"><a href="#58">58</a></td></tr
><tr id="gr_svn3_59"

><td id="59"><a href="#59">59</a></td></tr
><tr id="gr_svn3_60"

><td id="60"><a href="#60">60</a></td></tr
><tr id="gr_svn3_61"

><td id="61"><a href="#61">61</a></td></tr
><tr id="gr_svn3_62"

><td id="62"><a href="#62">62</a></td></tr
><tr id="gr_svn3_63"

><td id="63"><a href="#63">63</a></td></tr
><tr id="gr_svn3_64"

><td id="64"><a href="#64">64</a></td></tr
><tr id="gr_svn3_65"

><td id="65"><a href="#65">65</a></td></tr
><tr id="gr_svn3_66"

><td id="66"><a href="#66">66</a></td></tr
><tr id="gr_svn3_67"

><td id="67"><a href="#67">67</a></td></tr
><tr id="gr_svn3_68"

><td id="68"><a href="#68">68</a></td></tr
><tr id="gr_svn3_69"

><td id="69"><a href="#69">69</a></td></tr
><tr id="gr_svn3_70"

><td id="70"><a href="#70">70</a></td></tr
><tr id="gr_svn3_71"

><td id="71"><a href="#71">71</a></td></tr
><tr id="gr_svn3_72"

><td id="72"><a href="#72">72</a></td></tr
><tr id="gr_svn3_73"

><td id="73"><a href="#73">73</a></td></tr
><tr id="gr_svn3_74"

><td id="74"><a href="#74">74</a></td></tr
><tr id="gr_svn3_75"

><td id="75"><a href="#75">75</a></td></tr
><tr id="gr_svn3_76"

><td id="76"><a href="#76">76</a></td></tr
><tr id="gr_svn3_77"

><td id="77"><a href="#77">77</a></td></tr
><tr id="gr_svn3_78"

><td id="78"><a href="#78">78</a></td></tr
><tr id="gr_svn3_79"

><td id="79"><a href="#79">79</a></td></tr
><tr id="gr_svn3_80"

><td id="80"><a href="#80">80</a></td></tr
><tr id="gr_svn3_81"

><td id="81"><a href="#81">81</a></td></tr
><tr id="gr_svn3_82"

><td id="82"><a href="#82">82</a></td></tr
><tr id="gr_svn3_83"

><td id="83"><a href="#83">83</a></td></tr
><tr id="gr_svn3_84"

><td id="84"><a href="#84">84</a></td></tr
><tr id="gr_svn3_85"

><td id="85"><a href="#85">85</a></td></tr
><tr id="gr_svn3_86"

><td id="86"><a href="#86">86</a></td></tr
><tr id="gr_svn3_87"

><td id="87"><a href="#87">87</a></td></tr
><tr id="gr_svn3_88"

><td id="88"><a href="#88">88</a></td></tr
><tr id="gr_svn3_89"

><td id="89"><a href="#89">89</a></td></tr
><tr id="gr_svn3_90"

><td id="90"><a href="#90">90</a></td></tr
><tr id="gr_svn3_91"

><td id="91"><a href="#91">91</a></td></tr
><tr id="gr_svn3_92"

><td id="92"><a href="#92">92</a></td></tr
><tr id="gr_svn3_93"

><td id="93"><a href="#93">93</a></td></tr
><tr id="gr_svn3_94"

><td id="94"><a href="#94">94</a></td></tr
><tr id="gr_svn3_95"

><td id="95"><a href="#95">95</a></td></tr
><tr id="gr_svn3_96"

><td id="96"><a href="#96">96</a></td></tr
><tr id="gr_svn3_97"

><td id="97"><a href="#97">97</a></td></tr
><tr id="gr_svn3_98"

><td id="98"><a href="#98">98</a></td></tr
><tr id="gr_svn3_99"

><td id="99"><a href="#99">99</a></td></tr
><tr id="gr_svn3_100"

><td id="100"><a href="#100">100</a></td></tr
><tr id="gr_svn3_101"

><td id="101"><a href="#101">101</a></td></tr
><tr id="gr_svn3_102"

><td id="102"><a href="#102">102</a></td></tr
><tr id="gr_svn3_103"

><td id="103"><a href="#103">103</a></td></tr
><tr id="gr_svn3_104"

><td id="104"><a href="#104">104</a></td></tr
><tr id="gr_svn3_105"

><td id="105"><a href="#105">105</a></td></tr
><tr id="gr_svn3_106"

><td id="106"><a href="#106">106</a></td></tr
><tr id="gr_svn3_107"

><td id="107"><a href="#107">107</a></td></tr
><tr id="gr_svn3_108"

><td id="108"><a href="#108">108</a></td></tr
><tr id="gr_svn3_109"

><td id="109"><a href="#109">109</a></td></tr
><tr id="gr_svn3_110"

><td id="110"><a href="#110">110</a></td></tr
><tr id="gr_svn3_111"

><td id="111"><a href="#111">111</a></td></tr
><tr id="gr_svn3_112"

><td id="112"><a href="#112">112</a></td></tr
><tr id="gr_svn3_113"

><td id="113"><a href="#113">113</a></td></tr
><tr id="gr_svn3_114"

><td id="114"><a href="#114">114</a></td></tr
><tr id="gr_svn3_115"

><td id="115"><a href="#115">115</a></td></tr
><tr id="gr_svn3_116"

><td id="116"><a href="#116">116</a></td></tr
><tr id="gr_svn3_117"

><td id="117"><a href="#117">117</a></td></tr
><tr id="gr_svn3_118"

><td id="118"><a href="#118">118</a></td></tr
><tr id="gr_svn3_119"

><td id="119"><a href="#119">119</a></td></tr
><tr id="gr_svn3_120"

><td id="120"><a href="#120">120</a></td></tr
><tr id="gr_svn3_121"

><td id="121"><a href="#121">121</a></td></tr
><tr id="gr_svn3_122"

><td id="122"><a href="#122">122</a></td></tr
><tr id="gr_svn3_123"

><td id="123"><a href="#123">123</a></td></tr
><tr id="gr_svn3_124"

><td id="124"><a href="#124">124</a></td></tr
><tr id="gr_svn3_125"

><td id="125"><a href="#125">125</a></td></tr
><tr id="gr_svn3_126"

><td id="126"><a href="#126">126</a></td></tr
><tr id="gr_svn3_127"

><td id="127"><a href="#127">127</a></td></tr
><tr id="gr_svn3_128"

><td id="128"><a href="#128">128</a></td></tr
><tr id="gr_svn3_129"

><td id="129"><a href="#129">129</a></td></tr
><tr id="gr_svn3_130"

><td id="130"><a href="#130">130</a></td></tr
><tr id="gr_svn3_131"

><td id="131"><a href="#131">131</a></td></tr
><tr id="gr_svn3_132"

><td id="132"><a href="#132">132</a></td></tr
><tr id="gr_svn3_133"

><td id="133"><a href="#133">133</a></td></tr
><tr id="gr_svn3_134"

><td id="134"><a href="#134">134</a></td></tr
><tr id="gr_svn3_135"

><td id="135"><a href="#135">135</a></td></tr
><tr id="gr_svn3_136"

><td id="136"><a href="#136">136</a></td></tr
><tr id="gr_svn3_137"

><td id="137"><a href="#137">137</a></td></tr
><tr id="gr_svn3_138"

><td id="138"><a href="#138">138</a></td></tr
><tr id="gr_svn3_139"

><td id="139"><a href="#139">139</a></td></tr
><tr id="gr_svn3_140"

><td id="140"><a href="#140">140</a></td></tr
><tr id="gr_svn3_141"

><td id="141"><a href="#141">141</a></td></tr
><tr id="gr_svn3_142"

><td id="142"><a href="#142">142</a></td></tr
><tr id="gr_svn3_143"

><td id="143"><a href="#143">143</a></td></tr
><tr id="gr_svn3_144"

><td id="144"><a href="#144">144</a></td></tr
><tr id="gr_svn3_145"

><td id="145"><a href="#145">145</a></td></tr
><tr id="gr_svn3_146"

><td id="146"><a href="#146">146</a></td></tr
><tr id="gr_svn3_147"

><td id="147"><a href="#147">147</a></td></tr
><tr id="gr_svn3_148"

><td id="148"><a href="#148">148</a></td></tr
><tr id="gr_svn3_149"

><td id="149"><a href="#149">149</a></td></tr
><tr id="gr_svn3_150"

><td id="150"><a href="#150">150</a></td></tr
><tr id="gr_svn3_151"

><td id="151"><a href="#151">151</a></td></tr
><tr id="gr_svn3_152"

><td id="152"><a href="#152">152</a></td></tr
><tr id="gr_svn3_153"

><td id="153"><a href="#153">153</a></td></tr
><tr id="gr_svn3_154"

><td id="154"><a href="#154">154</a></td></tr
><tr id="gr_svn3_155"

><td id="155"><a href="#155">155</a></td></tr
><tr id="gr_svn3_156"

><td id="156"><a href="#156">156</a></td></tr
><tr id="gr_svn3_157"

><td id="157"><a href="#157">157</a></td></tr
><tr id="gr_svn3_158"

><td id="158"><a href="#158">158</a></td></tr
><tr id="gr_svn3_159"

><td id="159"><a href="#159">159</a></td></tr
><tr id="gr_svn3_160"

><td id="160"><a href="#160">160</a></td></tr
><tr id="gr_svn3_161"

><td id="161"><a href="#161">161</a></td></tr
><tr id="gr_svn3_162"

><td id="162"><a href="#162">162</a></td></tr
><tr id="gr_svn3_163"

><td id="163"><a href="#163">163</a></td></tr
><tr id="gr_svn3_164"

><td id="164"><a href="#164">164</a></td></tr
><tr id="gr_svn3_165"

><td id="165"><a href="#165">165</a></td></tr
><tr id="gr_svn3_166"

><td id="166"><a href="#166">166</a></td></tr
><tr id="gr_svn3_167"

><td id="167"><a href="#167">167</a></td></tr
><tr id="gr_svn3_168"

><td id="168"><a href="#168">168</a></td></tr
><tr id="gr_svn3_169"

><td id="169"><a href="#169">169</a></td></tr
><tr id="gr_svn3_170"

><td id="170"><a href="#170">170</a></td></tr
><tr id="gr_svn3_171"

><td id="171"><a href="#171">171</a></td></tr
><tr id="gr_svn3_172"

><td id="172"><a href="#172">172</a></td></tr
><tr id="gr_svn3_173"

><td id="173"><a href="#173">173</a></td></tr
><tr id="gr_svn3_174"

><td id="174"><a href="#174">174</a></td></tr
><tr id="gr_svn3_175"

><td id="175"><a href="#175">175</a></td></tr
><tr id="gr_svn3_176"

><td id="176"><a href="#176">176</a></td></tr
><tr id="gr_svn3_177"

><td id="177"><a href="#177">177</a></td></tr
><tr id="gr_svn3_178"

><td id="178"><a href="#178">178</a></td></tr
><tr id="gr_svn3_179"

><td id="179"><a href="#179">179</a></td></tr
><tr id="gr_svn3_180"

><td id="180"><a href="#180">180</a></td></tr
><tr id="gr_svn3_181"

><td id="181"><a href="#181">181</a></td></tr
><tr id="gr_svn3_182"

><td id="182"><a href="#182">182</a></td></tr
><tr id="gr_svn3_183"

><td id="183"><a href="#183">183</a></td></tr
><tr id="gr_svn3_184"

><td id="184"><a href="#184">184</a></td></tr
><tr id="gr_svn3_185"

><td id="185"><a href="#185">185</a></td></tr
><tr id="gr_svn3_186"

><td id="186"><a href="#186">186</a></td></tr
><tr id="gr_svn3_187"

><td id="187"><a href="#187">187</a></td></tr
><tr id="gr_svn3_188"

><td id="188"><a href="#188">188</a></td></tr
><tr id="gr_svn3_189"

><td id="189"><a href="#189">189</a></td></tr
><tr id="gr_svn3_190"

><td id="190"><a href="#190">190</a></td></tr
><tr id="gr_svn3_191"

><td id="191"><a href="#191">191</a></td></tr
><tr id="gr_svn3_192"

><td id="192"><a href="#192">192</a></td></tr
><tr id="gr_svn3_193"

><td id="193"><a href="#193">193</a></td></tr
><tr id="gr_svn3_194"

><td id="194"><a href="#194">194</a></td></tr
><tr id="gr_svn3_195"

><td id="195"><a href="#195">195</a></td></tr
><tr id="gr_svn3_196"

><td id="196"><a href="#196">196</a></td></tr
><tr id="gr_svn3_197"

><td id="197"><a href="#197">197</a></td></tr
><tr id="gr_svn3_198"

><td id="198"><a href="#198">198</a></td></tr
><tr id="gr_svn3_199"

><td id="199"><a href="#199">199</a></td></tr
><tr id="gr_svn3_200"

><td id="200"><a href="#200">200</a></td></tr
><tr id="gr_svn3_201"

><td id="201"><a href="#201">201</a></td></tr
><tr id="gr_svn3_202"

><td id="202"><a href="#202">202</a></td></tr
><tr id="gr_svn3_203"

><td id="203"><a href="#203">203</a></td></tr
><tr id="gr_svn3_204"

><td id="204"><a href="#204">204</a></td></tr
><tr id="gr_svn3_205"

><td id="205"><a href="#205">205</a></td></tr
><tr id="gr_svn3_206"

><td id="206"><a href="#206">206</a></td></tr
><tr id="gr_svn3_207"

><td id="207"><a href="#207">207</a></td></tr
><tr id="gr_svn3_208"

><td id="208"><a href="#208">208</a></td></tr
><tr id="gr_svn3_209"

><td id="209"><a href="#209">209</a></td></tr
><tr id="gr_svn3_210"

><td id="210"><a href="#210">210</a></td></tr
><tr id="gr_svn3_211"

><td id="211"><a href="#211">211</a></td></tr
><tr id="gr_svn3_212"

><td id="212"><a href="#212">212</a></td></tr
><tr id="gr_svn3_213"

><td id="213"><a href="#213">213</a></td></tr
><tr id="gr_svn3_214"

><td id="214"><a href="#214">214</a></td></tr
><tr id="gr_svn3_215"

><td id="215"><a href="#215">215</a></td></tr
><tr id="gr_svn3_216"

><td id="216"><a href="#216">216</a></td></tr
><tr id="gr_svn3_217"

><td id="217"><a href="#217">217</a></td></tr
><tr id="gr_svn3_218"

><td id="218"><a href="#218">218</a></td></tr
><tr id="gr_svn3_219"

><td id="219"><a href="#219">219</a></td></tr
><tr id="gr_svn3_220"

><td id="220"><a href="#220">220</a></td></tr
><tr id="gr_svn3_221"

><td id="221"><a href="#221">221</a></td></tr
><tr id="gr_svn3_222"

><td id="222"><a href="#222">222</a></td></tr
><tr id="gr_svn3_223"

><td id="223"><a href="#223">223</a></td></tr
><tr id="gr_svn3_224"

><td id="224"><a href="#224">224</a></td></tr
><tr id="gr_svn3_225"

><td id="225"><a href="#225">225</a></td></tr
><tr id="gr_svn3_226"

><td id="226"><a href="#226">226</a></td></tr
><tr id="gr_svn3_227"

><td id="227"><a href="#227">227</a></td></tr
><tr id="gr_svn3_228"

><td id="228"><a href="#228">228</a></td></tr
><tr id="gr_svn3_229"

><td id="229"><a href="#229">229</a></td></tr
><tr id="gr_svn3_230"

><td id="230"><a href="#230">230</a></td></tr
><tr id="gr_svn3_231"

><td id="231"><a href="#231">231</a></td></tr
><tr id="gr_svn3_232"

><td id="232"><a href="#232">232</a></td></tr
><tr id="gr_svn3_233"

><td id="233"><a href="#233">233</a></td></tr
><tr id="gr_svn3_234"

><td id="234"><a href="#234">234</a></td></tr
><tr id="gr_svn3_235"

><td id="235"><a href="#235">235</a></td></tr
><tr id="gr_svn3_236"

><td id="236"><a href="#236">236</a></td></tr
><tr id="gr_svn3_237"

><td id="237"><a href="#237">237</a></td></tr
><tr id="gr_svn3_238"

><td id="238"><a href="#238">238</a></td></tr
><tr id="gr_svn3_239"

><td id="239"><a href="#239">239</a></td></tr
><tr id="gr_svn3_240"

><td id="240"><a href="#240">240</a></td></tr
><tr id="gr_svn3_241"

><td id="241"><a href="#241">241</a></td></tr
><tr id="gr_svn3_242"

><td id="242"><a href="#242">242</a></td></tr
><tr id="gr_svn3_243"

><td id="243"><a href="#243">243</a></td></tr
><tr id="gr_svn3_244"

><td id="244"><a href="#244">244</a></td></tr
><tr id="gr_svn3_245"

><td id="245"><a href="#245">245</a></td></tr
><tr id="gr_svn3_246"

><td id="246"><a href="#246">246</a></td></tr
><tr id="gr_svn3_247"

><td id="247"><a href="#247">247</a></td></tr
><tr id="gr_svn3_248"

><td id="248"><a href="#248">248</a></td></tr
><tr id="gr_svn3_249"

><td id="249"><a href="#249">249</a></td></tr
><tr id="gr_svn3_250"

><td id="250"><a href="#250">250</a></td></tr
><tr id="gr_svn3_251"

><td id="251"><a href="#251">251</a></td></tr
><tr id="gr_svn3_252"

><td id="252"><a href="#252">252</a></td></tr
><tr id="gr_svn3_253"

><td id="253"><a href="#253">253</a></td></tr
><tr id="gr_svn3_254"

><td id="254"><a href="#254">254</a></td></tr
><tr id="gr_svn3_255"

><td id="255"><a href="#255">255</a></td></tr
><tr id="gr_svn3_256"

><td id="256"><a href="#256">256</a></td></tr
><tr id="gr_svn3_257"

><td id="257"><a href="#257">257</a></td></tr
><tr id="gr_svn3_258"

><td id="258"><a href="#258">258</a></td></tr
><tr id="gr_svn3_259"

><td id="259"><a href="#259">259</a></td></tr
><tr id="gr_svn3_260"

><td id="260"><a href="#260">260</a></td></tr
><tr id="gr_svn3_261"

><td id="261"><a href="#261">261</a></td></tr
><tr id="gr_svn3_262"

><td id="262"><a href="#262">262</a></td></tr
><tr id="gr_svn3_263"

><td id="263"><a href="#263">263</a></td></tr
><tr id="gr_svn3_264"

><td id="264"><a href="#264">264</a></td></tr
><tr id="gr_svn3_265"

><td id="265"><a href="#265">265</a></td></tr
><tr id="gr_svn3_266"

><td id="266"><a href="#266">266</a></td></tr
><tr id="gr_svn3_267"

><td id="267"><a href="#267">267</a></td></tr
><tr id="gr_svn3_268"

><td id="268"><a href="#268">268</a></td></tr
><tr id="gr_svn3_269"

><td id="269"><a href="#269">269</a></td></tr
><tr id="gr_svn3_270"

><td id="270"><a href="#270">270</a></td></tr
><tr id="gr_svn3_271"

><td id="271"><a href="#271">271</a></td></tr
><tr id="gr_svn3_272"

><td id="272"><a href="#272">272</a></td></tr
><tr id="gr_svn3_273"

><td id="273"><a href="#273">273</a></td></tr
><tr id="gr_svn3_274"

><td id="274"><a href="#274">274</a></td></tr
><tr id="gr_svn3_275"

><td id="275"><a href="#275">275</a></td></tr
><tr id="gr_svn3_276"

><td id="276"><a href="#276">276</a></td></tr
><tr id="gr_svn3_277"

><td id="277"><a href="#277">277</a></td></tr
><tr id="gr_svn3_278"

><td id="278"><a href="#278">278</a></td></tr
><tr id="gr_svn3_279"

><td id="279"><a href="#279">279</a></td></tr
><tr id="gr_svn3_280"

><td id="280"><a href="#280">280</a></td></tr
><tr id="gr_svn3_281"

><td id="281"><a href="#281">281</a></td></tr
><tr id="gr_svn3_282"

><td id="282"><a href="#282">282</a></td></tr
><tr id="gr_svn3_283"

><td id="283"><a href="#283">283</a></td></tr
><tr id="gr_svn3_284"

><td id="284"><a href="#284">284</a></td></tr
><tr id="gr_svn3_285"

><td id="285"><a href="#285">285</a></td></tr
><tr id="gr_svn3_286"

><td id="286"><a href="#286">286</a></td></tr
><tr id="gr_svn3_287"

><td id="287"><a href="#287">287</a></td></tr
><tr id="gr_svn3_288"

><td id="288"><a href="#288">288</a></td></tr
><tr id="gr_svn3_289"

><td id="289"><a href="#289">289</a></td></tr
><tr id="gr_svn3_290"

><td id="290"><a href="#290">290</a></td></tr
><tr id="gr_svn3_291"

><td id="291"><a href="#291">291</a></td></tr
><tr id="gr_svn3_292"

><td id="292"><a href="#292">292</a></td></tr
><tr id="gr_svn3_293"

><td id="293"><a href="#293">293</a></td></tr
><tr id="gr_svn3_294"

><td id="294"><a href="#294">294</a></td></tr
><tr id="gr_svn3_295"

><td id="295"><a href="#295">295</a></td></tr
><tr id="gr_svn3_296"

><td id="296"><a href="#296">296</a></td></tr
><tr id="gr_svn3_297"

><td id="297"><a href="#297">297</a></td></tr
><tr id="gr_svn3_298"

><td id="298"><a href="#298">298</a></td></tr
><tr id="gr_svn3_299"

><td id="299"><a href="#299">299</a></td></tr
><tr id="gr_svn3_300"

><td id="300"><a href="#300">300</a></td></tr
><tr id="gr_svn3_301"

><td id="301"><a href="#301">301</a></td></tr
><tr id="gr_svn3_302"

><td id="302"><a href="#302">302</a></td></tr
><tr id="gr_svn3_303"

><td id="303"><a href="#303">303</a></td></tr
><tr id="gr_svn3_304"

><td id="304"><a href="#304">304</a></td></tr
><tr id="gr_svn3_305"

><td id="305"><a href="#305">305</a></td></tr
><tr id="gr_svn3_306"

><td id="306"><a href="#306">306</a></td></tr
><tr id="gr_svn3_307"

><td id="307"><a href="#307">307</a></td></tr
><tr id="gr_svn3_308"

><td id="308"><a href="#308">308</a></td></tr
><tr id="gr_svn3_309"

><td id="309"><a href="#309">309</a></td></tr
><tr id="gr_svn3_310"

><td id="310"><a href="#310">310</a></td></tr
><tr id="gr_svn3_311"

><td id="311"><a href="#311">311</a></td></tr
><tr id="gr_svn3_312"

><td id="312"><a href="#312">312</a></td></tr
><tr id="gr_svn3_313"

><td id="313"><a href="#313">313</a></td></tr
><tr id="gr_svn3_314"

><td id="314"><a href="#314">314</a></td></tr
><tr id="gr_svn3_315"

><td id="315"><a href="#315">315</a></td></tr
><tr id="gr_svn3_316"

><td id="316"><a href="#316">316</a></td></tr
><tr id="gr_svn3_317"

><td id="317"><a href="#317">317</a></td></tr
><tr id="gr_svn3_318"

><td id="318"><a href="#318">318</a></td></tr
><tr id="gr_svn3_319"

><td id="319"><a href="#319">319</a></td></tr
><tr id="gr_svn3_320"

><td id="320"><a href="#320">320</a></td></tr
><tr id="gr_svn3_321"

><td id="321"><a href="#321">321</a></td></tr
><tr id="gr_svn3_322"

><td id="322"><a href="#322">322</a></td></tr
><tr id="gr_svn3_323"

><td id="323"><a href="#323">323</a></td></tr
><tr id="gr_svn3_324"

><td id="324"><a href="#324">324</a></td></tr
><tr id="gr_svn3_325"

><td id="325"><a href="#325">325</a></td></tr
><tr id="gr_svn3_326"

><td id="326"><a href="#326">326</a></td></tr
><tr id="gr_svn3_327"

><td id="327"><a href="#327">327</a></td></tr
><tr id="gr_svn3_328"

><td id="328"><a href="#328">328</a></td></tr
><tr id="gr_svn3_329"

><td id="329"><a href="#329">329</a></td></tr
><tr id="gr_svn3_330"

><td id="330"><a href="#330">330</a></td></tr
><tr id="gr_svn3_331"

><td id="331"><a href="#331">331</a></td></tr
><tr id="gr_svn3_332"

><td id="332"><a href="#332">332</a></td></tr
><tr id="gr_svn3_333"

><td id="333"><a href="#333">333</a></td></tr
><tr id="gr_svn3_334"

><td id="334"><a href="#334">334</a></td></tr
><tr id="gr_svn3_335"

><td id="335"><a href="#335">335</a></td></tr
><tr id="gr_svn3_336"

><td id="336"><a href="#336">336</a></td></tr
><tr id="gr_svn3_337"

><td id="337"><a href="#337">337</a></td></tr
><tr id="gr_svn3_338"

><td id="338"><a href="#338">338</a></td></tr
><tr id="gr_svn3_339"

><td id="339"><a href="#339">339</a></td></tr
><tr id="gr_svn3_340"

><td id="340"><a href="#340">340</a></td></tr
><tr id="gr_svn3_341"

><td id="341"><a href="#341">341</a></td></tr
><tr id="gr_svn3_342"

><td id="342"><a href="#342">342</a></td></tr
><tr id="gr_svn3_343"

><td id="343"><a href="#343">343</a></td></tr
><tr id="gr_svn3_344"

><td id="344"><a href="#344">344</a></td></tr
><tr id="gr_svn3_345"

><td id="345"><a href="#345">345</a></td></tr
><tr id="gr_svn3_346"

><td id="346"><a href="#346">346</a></td></tr
><tr id="gr_svn3_347"

><td id="347"><a href="#347">347</a></td></tr
><tr id="gr_svn3_348"

><td id="348"><a href="#348">348</a></td></tr
><tr id="gr_svn3_349"

><td id="349"><a href="#349">349</a></td></tr
><tr id="gr_svn3_350"

><td id="350"><a href="#350">350</a></td></tr
><tr id="gr_svn3_351"

><td id="351"><a href="#351">351</a></td></tr
><tr id="gr_svn3_352"

><td id="352"><a href="#352">352</a></td></tr
><tr id="gr_svn3_353"

><td id="353"><a href="#353">353</a></td></tr
><tr id="gr_svn3_354"

><td id="354"><a href="#354">354</a></td></tr
><tr id="gr_svn3_355"

><td id="355"><a href="#355">355</a></td></tr
><tr id="gr_svn3_356"

><td id="356"><a href="#356">356</a></td></tr
><tr id="gr_svn3_357"

><td id="357"><a href="#357">357</a></td></tr
><tr id="gr_svn3_358"

><td id="358"><a href="#358">358</a></td></tr
><tr id="gr_svn3_359"

><td id="359"><a href="#359">359</a></td></tr
><tr id="gr_svn3_360"

><td id="360"><a href="#360">360</a></td></tr
><tr id="gr_svn3_361"

><td id="361"><a href="#361">361</a></td></tr
><tr id="gr_svn3_362"

><td id="362"><a href="#362">362</a></td></tr
><tr id="gr_svn3_363"

><td id="363"><a href="#363">363</a></td></tr
><tr id="gr_svn3_364"

><td id="364"><a href="#364">364</a></td></tr
><tr id="gr_svn3_365"

><td id="365"><a href="#365">365</a></td></tr
><tr id="gr_svn3_366"

><td id="366"><a href="#366">366</a></td></tr
><tr id="gr_svn3_367"

><td id="367"><a href="#367">367</a></td></tr
><tr id="gr_svn3_368"

><td id="368"><a href="#368">368</a></td></tr
><tr id="gr_svn3_369"

><td id="369"><a href="#369">369</a></td></tr
><tr id="gr_svn3_370"

><td id="370"><a href="#370">370</a></td></tr
><tr id="gr_svn3_371"

><td id="371"><a href="#371">371</a></td></tr
><tr id="gr_svn3_372"

><td id="372"><a href="#372">372</a></td></tr
><tr id="gr_svn3_373"

><td id="373"><a href="#373">373</a></td></tr
><tr id="gr_svn3_374"

><td id="374"><a href="#374">374</a></td></tr
><tr id="gr_svn3_375"

><td id="375"><a href="#375">375</a></td></tr
><tr id="gr_svn3_376"

><td id="376"><a href="#376">376</a></td></tr
><tr id="gr_svn3_377"

><td id="377"><a href="#377">377</a></td></tr
><tr id="gr_svn3_378"

><td id="378"><a href="#378">378</a></td></tr
><tr id="gr_svn3_379"

><td id="379"><a href="#379">379</a></td></tr
><tr id="gr_svn3_380"

><td id="380"><a href="#380">380</a></td></tr
><tr id="gr_svn3_381"

><td id="381"><a href="#381">381</a></td></tr
><tr id="gr_svn3_382"

><td id="382"><a href="#382">382</a></td></tr
><tr id="gr_svn3_383"

><td id="383"><a href="#383">383</a></td></tr
><tr id="gr_svn3_384"

><td id="384"><a href="#384">384</a></td></tr
><tr id="gr_svn3_385"

><td id="385"><a href="#385">385</a></td></tr
><tr id="gr_svn3_386"

><td id="386"><a href="#386">386</a></td></tr
><tr id="gr_svn3_387"

><td id="387"><a href="#387">387</a></td></tr
><tr id="gr_svn3_388"

><td id="388"><a href="#388">388</a></td></tr
><tr id="gr_svn3_389"

><td id="389"><a href="#389">389</a></td></tr
><tr id="gr_svn3_390"

><td id="390"><a href="#390">390</a></td></tr
><tr id="gr_svn3_391"

><td id="391"><a href="#391">391</a></td></tr
><tr id="gr_svn3_392"

><td id="392"><a href="#392">392</a></td></tr
><tr id="gr_svn3_393"

><td id="393"><a href="#393">393</a></td></tr
><tr id="gr_svn3_394"

><td id="394"><a href="#394">394</a></td></tr
><tr id="gr_svn3_395"

><td id="395"><a href="#395">395</a></td></tr
><tr id="gr_svn3_396"

><td id="396"><a href="#396">396</a></td></tr
><tr id="gr_svn3_397"

><td id="397"><a href="#397">397</a></td></tr
><tr id="gr_svn3_398"

><td id="398"><a href="#398">398</a></td></tr
><tr id="gr_svn3_399"

><td id="399"><a href="#399">399</a></td></tr
><tr id="gr_svn3_400"

><td id="400"><a href="#400">400</a></td></tr
><tr id="gr_svn3_401"

><td id="401"><a href="#401">401</a></td></tr
><tr id="gr_svn3_402"

><td id="402"><a href="#402">402</a></td></tr
><tr id="gr_svn3_403"

><td id="403"><a href="#403">403</a></td></tr
><tr id="gr_svn3_404"

><td id="404"><a href="#404">404</a></td></tr
><tr id="gr_svn3_405"

><td id="405"><a href="#405">405</a></td></tr
><tr id="gr_svn3_406"

><td id="406"><a href="#406">406</a></td></tr
><tr id="gr_svn3_407"

><td id="407"><a href="#407">407</a></td></tr
><tr id="gr_svn3_408"

><td id="408"><a href="#408">408</a></td></tr
><tr id="gr_svn3_409"

><td id="409"><a href="#409">409</a></td></tr
><tr id="gr_svn3_410"

><td id="410"><a href="#410">410</a></td></tr
><tr id="gr_svn3_411"

><td id="411"><a href="#411">411</a></td></tr
><tr id="gr_svn3_412"

><td id="412"><a href="#412">412</a></td></tr
><tr id="gr_svn3_413"

><td id="413"><a href="#413">413</a></td></tr
><tr id="gr_svn3_414"

><td id="414"><a href="#414">414</a></td></tr
><tr id="gr_svn3_415"

><td id="415"><a href="#415">415</a></td></tr
><tr id="gr_svn3_416"

><td id="416"><a href="#416">416</a></td></tr
><tr id="gr_svn3_417"

><td id="417"><a href="#417">417</a></td></tr
><tr id="gr_svn3_418"

><td id="418"><a href="#418">418</a></td></tr
><tr id="gr_svn3_419"

><td id="419"><a href="#419">419</a></td></tr
><tr id="gr_svn3_420"

><td id="420"><a href="#420">420</a></td></tr
><tr id="gr_svn3_421"

><td id="421"><a href="#421">421</a></td></tr
><tr id="gr_svn3_422"

><td id="422"><a href="#422">422</a></td></tr
><tr id="gr_svn3_423"

><td id="423"><a href="#423">423</a></td></tr
><tr id="gr_svn3_424"

><td id="424"><a href="#424">424</a></td></tr
><tr id="gr_svn3_425"

><td id="425"><a href="#425">425</a></td></tr
><tr id="gr_svn3_426"

><td id="426"><a href="#426">426</a></td></tr
><tr id="gr_svn3_427"

><td id="427"><a href="#427">427</a></td></tr
><tr id="gr_svn3_428"

><td id="428"><a href="#428">428</a></td></tr
><tr id="gr_svn3_429"

><td id="429"><a href="#429">429</a></td></tr
><tr id="gr_svn3_430"

><td id="430"><a href="#430">430</a></td></tr
><tr id="gr_svn3_431"

><td id="431"><a href="#431">431</a></td></tr
><tr id="gr_svn3_432"

><td id="432"><a href="#432">432</a></td></tr
><tr id="gr_svn3_433"

><td id="433"><a href="#433">433</a></td></tr
><tr id="gr_svn3_434"

><td id="434"><a href="#434">434</a></td></tr
><tr id="gr_svn3_435"

><td id="435"><a href="#435">435</a></td></tr
><tr id="gr_svn3_436"

><td id="436"><a href="#436">436</a></td></tr
><tr id="gr_svn3_437"

><td id="437"><a href="#437">437</a></td></tr
><tr id="gr_svn3_438"

><td id="438"><a href="#438">438</a></td></tr
><tr id="gr_svn3_439"

><td id="439"><a href="#439">439</a></td></tr
><tr id="gr_svn3_440"

><td id="440"><a href="#440">440</a></td></tr
><tr id="gr_svn3_441"

><td id="441"><a href="#441">441</a></td></tr
><tr id="gr_svn3_442"

><td id="442"><a href="#442">442</a></td></tr
><tr id="gr_svn3_443"

><td id="443"><a href="#443">443</a></td></tr
><tr id="gr_svn3_444"

><td id="444"><a href="#444">444</a></td></tr
><tr id="gr_svn3_445"

><td id="445"><a href="#445">445</a></td></tr
><tr id="gr_svn3_446"

><td id="446"><a href="#446">446</a></td></tr
><tr id="gr_svn3_447"

><td id="447"><a href="#447">447</a></td></tr
><tr id="gr_svn3_448"

><td id="448"><a href="#448">448</a></td></tr
><tr id="gr_svn3_449"

><td id="449"><a href="#449">449</a></td></tr
><tr id="gr_svn3_450"

><td id="450"><a href="#450">450</a></td></tr
><tr id="gr_svn3_451"

><td id="451"><a href="#451">451</a></td></tr
><tr id="gr_svn3_452"

><td id="452"><a href="#452">452</a></td></tr
><tr id="gr_svn3_453"

><td id="453"><a href="#453">453</a></td></tr
><tr id="gr_svn3_454"

><td id="454"><a href="#454">454</a></td></tr
><tr id="gr_svn3_455"

><td id="455"><a href="#455">455</a></td></tr
><tr id="gr_svn3_456"

><td id="456"><a href="#456">456</a></td></tr
><tr id="gr_svn3_457"

><td id="457"><a href="#457">457</a></td></tr
><tr id="gr_svn3_458"

><td id="458"><a href="#458">458</a></td></tr
><tr id="gr_svn3_459"

><td id="459"><a href="#459">459</a></td></tr
><tr id="gr_svn3_460"

><td id="460"><a href="#460">460</a></td></tr
><tr id="gr_svn3_461"

><td id="461"><a href="#461">461</a></td></tr
><tr id="gr_svn3_462"

><td id="462"><a href="#462">462</a></td></tr
><tr id="gr_svn3_463"

><td id="463"><a href="#463">463</a></td></tr
><tr id="gr_svn3_464"

><td id="464"><a href="#464">464</a></td></tr
><tr id="gr_svn3_465"

><td id="465"><a href="#465">465</a></td></tr
><tr id="gr_svn3_466"

><td id="466"><a href="#466">466</a></td></tr
><tr id="gr_svn3_467"

><td id="467"><a href="#467">467</a></td></tr
><tr id="gr_svn3_468"

><td id="468"><a href="#468">468</a></td></tr
><tr id="gr_svn3_469"

><td id="469"><a href="#469">469</a></td></tr
><tr id="gr_svn3_470"

><td id="470"><a href="#470">470</a></td></tr
><tr id="gr_svn3_471"

><td id="471"><a href="#471">471</a></td></tr
><tr id="gr_svn3_472"

><td id="472"><a href="#472">472</a></td></tr
><tr id="gr_svn3_473"

><td id="473"><a href="#473">473</a></td></tr
><tr id="gr_svn3_474"

><td id="474"><a href="#474">474</a></td></tr
><tr id="gr_svn3_475"

><td id="475"><a href="#475">475</a></td></tr
><tr id="gr_svn3_476"

><td id="476"><a href="#476">476</a></td></tr
><tr id="gr_svn3_477"

><td id="477"><a href="#477">477</a></td></tr
><tr id="gr_svn3_478"

><td id="478"><a href="#478">478</a></td></tr
><tr id="gr_svn3_479"

><td id="479"><a href="#479">479</a></td></tr
><tr id="gr_svn3_480"

><td id="480"><a href="#480">480</a></td></tr
><tr id="gr_svn3_481"

><td id="481"><a href="#481">481</a></td></tr
><tr id="gr_svn3_482"

><td id="482"><a href="#482">482</a></td></tr
><tr id="gr_svn3_483"

><td id="483"><a href="#483">483</a></td></tr
><tr id="gr_svn3_484"

><td id="484"><a href="#484">484</a></td></tr
><tr id="gr_svn3_485"

><td id="485"><a href="#485">485</a></td></tr
><tr id="gr_svn3_486"

><td id="486"><a href="#486">486</a></td></tr
><tr id="gr_svn3_487"

><td id="487"><a href="#487">487</a></td></tr
><tr id="gr_svn3_488"

><td id="488"><a href="#488">488</a></td></tr
><tr id="gr_svn3_489"

><td id="489"><a href="#489">489</a></td></tr
><tr id="gr_svn3_490"

><td id="490"><a href="#490">490</a></td></tr
><tr id="gr_svn3_491"

><td id="491"><a href="#491">491</a></td></tr
><tr id="gr_svn3_492"

><td id="492"><a href="#492">492</a></td></tr
><tr id="gr_svn3_493"

><td id="493"><a href="#493">493</a></td></tr
><tr id="gr_svn3_494"

><td id="494"><a href="#494">494</a></td></tr
><tr id="gr_svn3_495"

><td id="495"><a href="#495">495</a></td></tr
><tr id="gr_svn3_496"

><td id="496"><a href="#496">496</a></td></tr
><tr id="gr_svn3_497"

><td id="497"><a href="#497">497</a></td></tr
><tr id="gr_svn3_498"

><td id="498"><a href="#498">498</a></td></tr
><tr id="gr_svn3_499"

><td id="499"><a href="#499">499</a></td></tr
><tr id="gr_svn3_500"

><td id="500"><a href="#500">500</a></td></tr
><tr id="gr_svn3_501"

><td id="501"><a href="#501">501</a></td></tr
><tr id="gr_svn3_502"

><td id="502"><a href="#502">502</a></td></tr
><tr id="gr_svn3_503"

><td id="503"><a href="#503">503</a></td></tr
><tr id="gr_svn3_504"

><td id="504"><a href="#504">504</a></td></tr
><tr id="gr_svn3_505"

><td id="505"><a href="#505">505</a></td></tr
><tr id="gr_svn3_506"

><td id="506"><a href="#506">506</a></td></tr
><tr id="gr_svn3_507"

><td id="507"><a href="#507">507</a></td></tr
><tr id="gr_svn3_508"

><td id="508"><a href="#508">508</a></td></tr
><tr id="gr_svn3_509"

><td id="509"><a href="#509">509</a></td></tr
><tr id="gr_svn3_510"

><td id="510"><a href="#510">510</a></td></tr
><tr id="gr_svn3_511"

><td id="511"><a href="#511">511</a></td></tr
><tr id="gr_svn3_512"

><td id="512"><a href="#512">512</a></td></tr
><tr id="gr_svn3_513"

><td id="513"><a href="#513">513</a></td></tr
><tr id="gr_svn3_514"

><td id="514"><a href="#514">514</a></td></tr
><tr id="gr_svn3_515"

><td id="515"><a href="#515">515</a></td></tr
><tr id="gr_svn3_516"

><td id="516"><a href="#516">516</a></td></tr
><tr id="gr_svn3_517"

><td id="517"><a href="#517">517</a></td></tr
><tr id="gr_svn3_518"

><td id="518"><a href="#518">518</a></td></tr
><tr id="gr_svn3_519"

><td id="519"><a href="#519">519</a></td></tr
><tr id="gr_svn3_520"

><td id="520"><a href="#520">520</a></td></tr
><tr id="gr_svn3_521"

><td id="521"><a href="#521">521</a></td></tr
><tr id="gr_svn3_522"

><td id="522"><a href="#522">522</a></td></tr
><tr id="gr_svn3_523"

><td id="523"><a href="#523">523</a></td></tr
><tr id="gr_svn3_524"

><td id="524"><a href="#524">524</a></td></tr
><tr id="gr_svn3_525"

><td id="525"><a href="#525">525</a></td></tr
><tr id="gr_svn3_526"

><td id="526"><a href="#526">526</a></td></tr
><tr id="gr_svn3_527"

><td id="527"><a href="#527">527</a></td></tr
><tr id="gr_svn3_528"

><td id="528"><a href="#528">528</a></td></tr
><tr id="gr_svn3_529"

><td id="529"><a href="#529">529</a></td></tr
><tr id="gr_svn3_530"

><td id="530"><a href="#530">530</a></td></tr
><tr id="gr_svn3_531"

><td id="531"><a href="#531">531</a></td></tr
><tr id="gr_svn3_532"

><td id="532"><a href="#532">532</a></td></tr
></table></pre>
<pre><table width="100%"><tr class="nocursor"><td></td></tr></table></pre>
</td>
<td id="lines">
<pre><table width="100%"><tr class="cursor_stop cursor_hidden"><td></td></tr></table></pre>
<pre class="prettyprint lang-cs"><table id="src_table_0"><tr
id=sl_svn3_1

><td class="source">/*<br></td></tr
><tr
id=sl_svn3_2

><td class="source"> * This plugin includes following features:<br></td></tr
><tr
id=sl_svn3_3

><td class="source"> * - Detects when stuck and performs unstuck routine<br></td></tr
><tr
id=sl_svn3_4

><td class="source"> * - Restarts bot when stuck or at intervals (stability fix)<br></td></tr
><tr
id=sl_svn3_5

><td class="source"> * - Fixes stuck in air being attacked for ArchaeologyBuddy<br></td></tr
><tr
id=sl_svn3_6

><td class="source"> * - Fixes stuck in shallow water for PoolFisher bot<br></td></tr
><tr
id=sl_svn3_7

><td class="source"> *<br></td></tr
><tr
id=sl_svn3_8

><td class="source"> * Author: lofi<br></td></tr
><tr
id=sl_svn3_9

><td class="source"> */<br></td></tr
><tr
id=sl_svn3_10

><td class="source"><br></td></tr
><tr
id=sl_svn3_11

><td class="source">using Styx.Combat.CombatRoutine;<br></td></tr
><tr
id=sl_svn3_12

><td class="source">using Styx.Helpers;<br></td></tr
><tr
id=sl_svn3_13

><td class="source">using Styx.Logic.BehaviorTree;<br></td></tr
><tr
id=sl_svn3_14

><td class="source">using Styx.Logic.Combat;<br></td></tr
><tr
id=sl_svn3_15

><td class="source">using Styx.Logic.Inventory.Frames.Gossip;<br></td></tr
><tr
id=sl_svn3_16

><td class="source">using Styx.Logic.Inventory.Frames.LootFrame;<br></td></tr
><tr
id=sl_svn3_17

><td class="source">using Styx.Logic.POI;<br></td></tr
><tr
id=sl_svn3_18

><td class="source">using Styx.Logic.Pathing;<br></td></tr
><tr
id=sl_svn3_19

><td class="source">using Styx.Logic.Profiles;<br></td></tr
><tr
id=sl_svn3_20

><td class="source">using Styx.Logic;<br></td></tr
><tr
id=sl_svn3_21

><td class="source">using Styx.Plugins.PluginClass;<br></td></tr
><tr
id=sl_svn3_22

><td class="source">using Styx.WoWInternals.WoWObjects;<br></td></tr
><tr
id=sl_svn3_23

><td class="source">using Styx.WoWInternals;<br></td></tr
><tr
id=sl_svn3_24

><td class="source">using Styx;<br></td></tr
><tr
id=sl_svn3_25

><td class="source">using System.Collections.Generic;<br></td></tr
><tr
id=sl_svn3_26

><td class="source">using System.Diagnostics;<br></td></tr
><tr
id=sl_svn3_27

><td class="source">using System.Drawing;<br></td></tr
><tr
id=sl_svn3_28

><td class="source">using System.IO;<br></td></tr
><tr
id=sl_svn3_29

><td class="source">using System.Linq;<br></td></tr
><tr
id=sl_svn3_30

><td class="source">using System.Net;<br></td></tr
><tr
id=sl_svn3_31

><td class="source">using System.Reflection;<br></td></tr
><tr
id=sl_svn3_32

><td class="source">using System.Runtime.InteropServices;<br></td></tr
><tr
id=sl_svn3_33

><td class="source">using System.Threading;<br></td></tr
><tr
id=sl_svn3_34

><td class="source">using System.Windows.Forms;<br></td></tr
><tr
id=sl_svn3_35

><td class="source">using System.Xml.Linq;<br></td></tr
><tr
id=sl_svn3_36

><td class="source">using System;<br></td></tr
><tr
id=sl_svn3_37

><td class="source">using System.Media;<br></td></tr
><tr
id=sl_svn3_38

><td class="source">using Styx.Plugins;<br></td></tr
><tr
id=sl_svn3_39

><td class="source"><br></td></tr
><tr
id=sl_svn3_40

><td class="source">namespace StuckHelperFly<br></td></tr
><tr
id=sl_svn3_41

><td class="source">{<br></td></tr
><tr
id=sl_svn3_42

><td class="source">   <br></td></tr
><tr
id=sl_svn3_43

><td class="source">    #region form<br></td></tr
><tr
id=sl_svn3_44

><td class="source"><br></td></tr
><tr
id=sl_svn3_45

><td class="source">    public class SettingsForm : Form<br></td></tr
><tr
id=sl_svn3_46

><td class="source">    {<br></td></tr
><tr
id=sl_svn3_47

><td class="source">        private FlowLayoutPanel panel = new FlowLayoutPanel();<br></td></tr
><tr
id=sl_svn3_48

><td class="source">        private Label LabelStuckRoutine = new Label();<br></td></tr
><tr
id=sl_svn3_49

><td class="source">        private Label LabelStuckRestart = new Label();<br></td></tr
><tr
id=sl_svn3_50

><td class="source">        private Label LabelMountStuck = new Label();<br></td></tr
><tr
id=sl_svn3_51

><td class="source">	 private Label LabelStuckRange = new Label();<br></td></tr
><tr
id=sl_svn3_52

><td class="source">       <br></td></tr
><tr
id=sl_svn3_53

><td class="source">        private TextBox TextStuckRoutine = new TextBox();<br></td></tr
><tr
id=sl_svn3_54

><td class="source">        private TextBox TextStuckRestart = new TextBox();<br></td></tr
><tr
id=sl_svn3_55

><td class="source">        private TextBox TextMountStuck = new TextBox();<br></td></tr
><tr
id=sl_svn3_56

><td class="source">        private TextBox TextStuckRange = new TextBox();<br></td></tr
><tr
id=sl_svn3_57

><td class="source">       <br></td></tr
><tr
id=sl_svn3_58

><td class="source">        public SettingsForm()<br></td></tr
><tr
id=sl_svn3_59

><td class="source">        {<br></td></tr
><tr
id=sl_svn3_60

><td class="source">            LabelStuckRoutine.Text = &quot;StuckRoutine:&quot;;<br></td></tr
><tr
id=sl_svn3_61

><td class="source">            LabelStuckRestart.Text = &quot;StuckRestart:&quot;;<br></td></tr
><tr
id=sl_svn3_62

><td class="source">            LabelMountStuck.Text = &quot;MountStuck:&quot;;<br></td></tr
><tr
id=sl_svn3_63

><td class="source">	    LabelStuckRange.Text = &quot;StuckRange:&quot;;<br></td></tr
><tr
id=sl_svn3_64

><td class="source">	   	    <br></td></tr
><tr
id=sl_svn3_65

><td class="source"><br></td></tr
><tr
id=sl_svn3_66

><td class="source">            TextStuckRoutine.Text = StuckHelperFly.settings.StuckRoutine.ToString();<br></td></tr
><tr
id=sl_svn3_67

><td class="source">            TextStuckRoutine.Width = 190;<br></td></tr
><tr
id=sl_svn3_68

><td class="source">            TextStuckRestart.Text = StuckHelperFly.settings.StuckRestart.ToString();<br></td></tr
><tr
id=sl_svn3_69

><td class="source">            TextStuckRestart.Width = 190;<br></td></tr
><tr
id=sl_svn3_70

><td class="source">            TextMountStuck.Text = StuckHelperFly.settings.MountStuck.ToString();<br></td></tr
><tr
id=sl_svn3_71

><td class="source">            TextMountStuck.Width = 190;<br></td></tr
><tr
id=sl_svn3_72

><td class="source">	    TextStuckRange.Text = StuckHelperFly.settings.StuckRange.ToString();<br></td></tr
><tr
id=sl_svn3_73

><td class="source">            TextStuckRange.Width = 190;<br></td></tr
><tr
id=sl_svn3_74

><td class="source">           <br></td></tr
><tr
id=sl_svn3_75

><td class="source">            panel.Dock = DockStyle.Fill;<br></td></tr
><tr
id=sl_svn3_76

><td class="source">            panel.Controls.Add(LabelStuckRoutine);<br></td></tr
><tr
id=sl_svn3_77

><td class="source">            panel.Controls.Add(TextStuckRoutine);<br></td></tr
><tr
id=sl_svn3_78

><td class="source">            panel.Controls.Add(LabelStuckRestart);<br></td></tr
><tr
id=sl_svn3_79

><td class="source">            panel.Controls.Add(TextStuckRestart);<br></td></tr
><tr
id=sl_svn3_80

><td class="source">            panel.Controls.Add(LabelMountStuck);<br></td></tr
><tr
id=sl_svn3_81

><td class="source">            panel.Controls.Add(TextMountStuck);<br></td></tr
><tr
id=sl_svn3_82

><td class="source">	    panel.Controls.Add(LabelStuckRange);<br></td></tr
><tr
id=sl_svn3_83

><td class="source">            panel.Controls.Add(TextStuckRange);<br></td></tr
><tr
id=sl_svn3_84

><td class="source">          <br></td></tr
><tr
id=sl_svn3_85

><td class="source">            this.Text = &quot;Settings&quot;;<br></td></tr
><tr
id=sl_svn3_86

><td class="source">            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;<br></td></tr
><tr
id=sl_svn3_87

><td class="source">            this.Height = 190;<br></td></tr
><tr
id=sl_svn3_88

><td class="source">            this.Width = 320;<br></td></tr
><tr
id=sl_svn3_89

><td class="source">            this.Controls.Add(panel);<br></td></tr
><tr
id=sl_svn3_90

><td class="source">        }<br></td></tr
><tr
id=sl_svn3_91

><td class="source"><br></td></tr
><tr
id=sl_svn3_92

><td class="source">        protected override void Dispose(bool disposing)<br></td></tr
><tr
id=sl_svn3_93

><td class="source">        {<br></td></tr
><tr
id=sl_svn3_94

><td class="source">            StuckHelperFly.settings.StuckRoutine = int.Parse(TextStuckRoutine.Text);<br></td></tr
><tr
id=sl_svn3_95

><td class="source">            StuckHelperFly.settings.StuckRestart = int.Parse(TextStuckRestart.Text);<br></td></tr
><tr
id=sl_svn3_96

><td class="source">            StuckHelperFly.settings.MountStuck = int.Parse(TextMountStuck.Text);<br></td></tr
><tr
id=sl_svn3_97

><td class="source">            StuckHelperFly.settings.StuckRange = int.Parse(TextStuckRange.Text);<br></td></tr
><tr
id=sl_svn3_98

><td class="source">           <br></td></tr
><tr
id=sl_svn3_99

><td class="source">            StuckHelperFly.settings.Save();<br></td></tr
><tr
id=sl_svn3_100

><td class="source">            base.Dispose(disposing);<br></td></tr
><tr
id=sl_svn3_101

><td class="source">        }<br></td></tr
><tr
id=sl_svn3_102

><td class="source">    }<br></td></tr
><tr
id=sl_svn3_103

><td class="source"><br></td></tr
><tr
id=sl_svn3_104

><td class="source">    #endregion<br></td></tr
><tr
id=sl_svn3_105

><td class="source"><br></td></tr
><tr
id=sl_svn3_106

><td class="source">    #region settings<br></td></tr
><tr
id=sl_svn3_107

><td class="source"><br></td></tr
><tr
id=sl_svn3_108

><td class="source">    class  StuckHelperFlySettings : Settings<br></td></tr
><tr
id=sl_svn3_109

><td class="source">    {<br></td></tr
><tr
id=sl_svn3_110

><td class="source">        public  StuckHelperFlySettings() : base(Logging.ApplicationPath + &quot;\\Settings\\StuckHelperFly_&quot; + StyxWoW.Me.Name + &quot;.xml&quot;) <br></td></tr
><tr
id=sl_svn3_111

><td class="source">        {<br></td></tr
><tr
id=sl_svn3_112

><td class="source">        Load();<br></td></tr
><tr
id=sl_svn3_113

><td class="source">        }<br></td></tr
><tr
id=sl_svn3_114

><td class="source"><br></td></tr
><tr
id=sl_svn3_115

><td class="source">        [Setting, DefaultValue(60)]<br></td></tr
><tr
id=sl_svn3_116

><td class="source">        public int StuckRoutine { get; set; }<br></td></tr
><tr
id=sl_svn3_117

><td class="source"><br></td></tr
><tr
id=sl_svn3_118

><td class="source">        [Setting, DefaultValue(90)]<br></td></tr
><tr
id=sl_svn3_119

><td class="source">        public int StuckRestart { get; set; }<br></td></tr
><tr
id=sl_svn3_120

><td class="source"><br></td></tr
><tr
id=sl_svn3_121

><td class="source">        [Setting, DefaultValue(20)]<br></td></tr
><tr
id=sl_svn3_122

><td class="source">        public int MountStuck { get; set; }<br></td></tr
><tr
id=sl_svn3_123

><td class="source"><br></td></tr
><tr
id=sl_svn3_124

><td class="source">	[Setting, DefaultValue(20)]<br></td></tr
><tr
id=sl_svn3_125

><td class="source">        public int StuckRange { get; set; }<br></td></tr
><tr
id=sl_svn3_126

><td class="source"><br></td></tr
><tr
id=sl_svn3_127

><td class="source"><br></td></tr
><tr
id=sl_svn3_128

><td class="source">       }<br></td></tr
><tr
id=sl_svn3_129

><td class="source"><br></td></tr
><tr
id=sl_svn3_130

><td class="source">    #endregion<br></td></tr
><tr
id=sl_svn3_131

><td class="source"><br></td></tr
><tr
id=sl_svn3_132

><td class="source"><br></td></tr
><tr
id=sl_svn3_133

><td class="source">    class StuckHelperFly : HBPlugin, IDisposable<br></td></tr
><tr
id=sl_svn3_134

><td class="source">    {<br></td></tr
><tr
id=sl_svn3_135

><td class="source">        // User configurations<br></td></tr
><tr
id=sl_svn3_136

><td class="source">        private static double RestartInterval = 0; // Restart bot ever x mins, 0 to disable<br></td></tr
><tr
id=sl_svn3_137

><td class="source">        private static int StopStartTime = 30; // Seconds to wait between stop and start during re-start<br></td></tr
><tr
id=sl_svn3_138

><td class="source">       // private static double StuckRange = 10; // Reset standing still timer after moving this distance<br></td></tr
><tr
id=sl_svn3_139

><td class="source">       // private static double StuckMins = 1; // Restart bot after standing still this long, 0 to disable<br></td></tr
><tr
id=sl_svn3_140

><td class="source">       // private static double StuckRoutineMins = 1; // Perform unstuck after standing still this long, 0 to disable<br></td></tr
><tr
id=sl_svn3_141

><td class="source">        private static double ArchBuddyFixMins = 0; // Dismounts after flying still and being attacked, 0 to disable<br></td></tr
><tr
id=sl_svn3_142

><td class="source">        private static double PoolFisherFixMins = 0; // Perform unstuck after swimming still this long, 0 to disable<br></td></tr
><tr
id=sl_svn3_143

><td class="source">       // private static double MountFixMins = 20; // Perform dismount after mounted still this long, 0 to disable<br></td></tr
><tr
id=sl_svn3_144

><td class="source">	<br></td></tr
><tr
id=sl_svn3_145

><td class="source">	public override bool WantButton { get { return true; } }<br></td></tr
><tr
id=sl_svn3_146

><td class="source">        public override string Name { get { return &quot;- Custom - StuckHelper Fly&quot;; } }<br></td></tr
><tr
id=sl_svn3_147

><td class="source">        public override string Author { get { return &quot;bcrazy&quot;; } }<br></td></tr
><tr
id=sl_svn3_148

><td class="source">        public override Version Version { get { return new Version(1, 0, 1); } }<br></td></tr
><tr
id=sl_svn3_149

><td class="source">         private static LocalPlayer Me { get { return ObjectManager.Me; } }<br></td></tr
><tr
id=sl_svn3_150

><td class="source">        private static Stopwatch spamD = new Stopwatch();<br></td></tr
><tr
id=sl_svn3_151

><td class="source">        private static Stopwatch TimerRestartFermo = new Stopwatch();<br></td></tr
><tr
id=sl_svn3_152

><td class="source">        private static Stopwatch TimerUnstuck = new Stopwatch();<br></td></tr
><tr
id=sl_svn3_153

><td class="source">        private static Stopwatch archBuddyTimer = new Stopwatch();<br></td></tr
><tr
id=sl_svn3_154

><td class="source">        private static Stopwatch swimTimer = new Stopwatch();<br></td></tr
><tr
id=sl_svn3_155

><td class="source">        private static Stopwatch TimerMount = new Stopwatch();<br></td></tr
><tr
id=sl_svn3_156

><td class="source">        private static Thread restartIntervalThread = null;<br></td></tr
><tr
id=sl_svn3_157

><td class="source">        private static Thread restartWhenStuckThread = null;<br></td></tr
><tr
id=sl_svn3_158

><td class="source">        private static WoWPoint lastPoint = new WoWPoint();<br></td></tr
><tr
id=sl_svn3_159

><td class="source">        private static Random random = new Random();<br></td></tr
><tr
id=sl_svn3_160

><td class="source"> 	private static Stopwatch CountRestart = new Stopwatch();<br></td></tr
><tr
id=sl_svn3_161

><td class="source">	public static  StuckHelperFlySettings settings = new  StuckHelperFlySettings();<br></td></tr
><tr
id=sl_svn3_162

><td class="source"><br></td></tr
><tr
id=sl_svn3_163

><td class="source"><br></td></tr
><tr
id=sl_svn3_164

><td class="source">	<br></td></tr
><tr
id=sl_svn3_165

><td class="source"><br></td></tr
><tr
id=sl_svn3_166

><td class="source">	private static void PlaySound(string soundFile)<br></td></tr
><tr
id=sl_svn3_167

><td class="source">        {<br></td></tr
><tr
id=sl_svn3_168

><td class="source">        new SoundPlayer(Path.Combine(Logging.ApplicationPath, @&quot;Plugins\StuckHelper\Sounds\&quot;) + soundFile).Play();<br></td></tr
><tr
id=sl_svn3_169

><td class="source">        }<br></td></tr
><tr
id=sl_svn3_170

><td class="source"><br></td></tr
><tr
id=sl_svn3_171

><td class="source">	 <br></td></tr
><tr
id=sl_svn3_172

><td class="source">	public override string ButtonText<br></td></tr
><tr
id=sl_svn3_173

><td class="source">        {<br></td></tr
><tr
id=sl_svn3_174

><td class="source">            get<br></td></tr
><tr
id=sl_svn3_175

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_176

><td class="source">                return &quot;StuckHelper Fly&quot;;<br></td></tr
><tr
id=sl_svn3_177

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_178

><td class="source">        }<br></td></tr
><tr
id=sl_svn3_179

><td class="source"><br></td></tr
><tr
id=sl_svn3_180

><td class="source">	public override void OnButtonPress()<br></td></tr
><tr
id=sl_svn3_181

><td class="source">        {<br></td></tr
><tr
id=sl_svn3_182

><td class="source">            new SettingsForm().Show();<br></td></tr
><tr
id=sl_svn3_183

><td class="source">        }<br></td></tr
><tr
id=sl_svn3_184

><td class="source"><br></td></tr
><tr
id=sl_svn3_185

><td class="source"><br></td></tr
><tr
id=sl_svn3_186

><td class="source">        public override void Pulse()<br></td></tr
><tr
id=sl_svn3_187

><td class="source">          {<br></td></tr
><tr
id=sl_svn3_188

><td class="source">            try<br></td></tr
><tr
id=sl_svn3_189

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_190

><td class="source">		if (Me == null || !ObjectManager.IsInGame || Battlegrounds.IsInsideBattleground)<br></td></tr
><tr
id=sl_svn3_191

><td class="source">		{<br></td></tr
><tr
id=sl_svn3_192

><td class="source">		TimerRestartFermo.Reset();<br></td></tr
><tr
id=sl_svn3_193

><td class="source">                TimerUnstuck.Reset();<br></td></tr
><tr
id=sl_svn3_194

><td class="source">		return;<br></td></tr
><tr
id=sl_svn3_195

><td class="source">           	}<br></td></tr
><tr
id=sl_svn3_196

><td class="source">	<br></td></tr
><tr
id=sl_svn3_197

><td class="source">		if (Me.Combat || Me.IsOnTransport)<br></td></tr
><tr
id=sl_svn3_198

><td class="source">		{<br></td></tr
><tr
id=sl_svn3_199

><td class="source">		TimerRestartFermo.Reset();<br></td></tr
><tr
id=sl_svn3_200

><td class="source">                TimerUnstuck.Reset();<br></td></tr
><tr
id=sl_svn3_201

><td class="source">		}	<br></td></tr
><tr
id=sl_svn3_202

><td class="source"><br></td></tr
><tr
id=sl_svn3_203

><td class="source"><br></td></tr
><tr
id=sl_svn3_204

><td class="source">               	 <br></td></tr
><tr
id=sl_svn3_205

><td class="source">		<br></td></tr
><tr
id=sl_svn3_206

><td class="source">		if (spamD.Elapsed.TotalSeconds &lt; 5.0 &amp;&amp; !Me.Combat)<br></td></tr
><tr
id=sl_svn3_207

><td class="source">                    return; // spam protection<br></td></tr
><tr
id=sl_svn3_208

><td class="source">                spamD.Reset();<br></td></tr
><tr
id=sl_svn3_209

><td class="source">                spamD.Start();<br></td></tr
><tr
id=sl_svn3_210

><td class="source"><br></td></tr
><tr
id=sl_svn3_211

><td class="source">                // update game objects<br></td></tr
><tr
id=sl_svn3_212

><td class="source">                ObjectManager.Update();  <br></td></tr
><tr
id=sl_svn3_213

><td class="source">		Stuck();<br></td></tr
><tr
id=sl_svn3_214

><td class="source"><br></td></tr
><tr
id=sl_svn3_215

><td class="source">	      }<br></td></tr
><tr
id=sl_svn3_216

><td class="source">		<br></td></tr
><tr
id=sl_svn3_217

><td class="source"><br></td></tr
><tr
id=sl_svn3_218

><td class="source">            <br></td></tr
><tr
id=sl_svn3_219

><td class="source">            catch (Exception e)<br></td></tr
><tr
id=sl_svn3_220

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_221

><td class="source">                Log(&quot;ERROR: &quot; + e.Message + &quot;. See debug log.&quot;);<br></td></tr
><tr
id=sl_svn3_222

><td class="source">                Logging.WriteDebug(&quot;StuckHelper exception:&quot;);<br></td></tr
><tr
id=sl_svn3_223

><td class="source">                Logging.WriteException(e);<br></td></tr
><tr
id=sl_svn3_224

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_225

><td class="source">        }<br></td></tr
><tr
id=sl_svn3_226

><td class="source"><br></td></tr
><tr
id=sl_svn3_227

><td class="source">        public override void Initialize()<br></td></tr
><tr
id=sl_svn3_228

><td class="source">        {<br></td></tr
><tr
id=sl_svn3_229

><td class="source">            if (restartIntervalThread != null &amp;&amp; restartIntervalThread.IsAlive)<br></td></tr
><tr
id=sl_svn3_230

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_231

><td class="source">                restartIntervalThread.Abort();<br></td></tr
><tr
id=sl_svn3_232

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_233

><td class="source"><br></td></tr
><tr
id=sl_svn3_234

><td class="source">            if (RestartInterval &gt; 0)<br></td></tr
><tr
id=sl_svn3_235

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_236

><td class="source">                restartIntervalThread = new Thread(new ThreadStart(RestartIntervalThread));<br></td></tr
><tr
id=sl_svn3_237

><td class="source">                restartIntervalThread.Start();<br></td></tr
><tr
id=sl_svn3_238

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_239

><td class="source"><br></td></tr
><tr
id=sl_svn3_240

><td class="source">            spamD.Start();<br></td></tr
><tr
id=sl_svn3_241

><td class="source"><br></td></tr
><tr
id=sl_svn3_242

><td class="source">            Log(&quot;Loaded version &quot; + Version);<br></td></tr
><tr
id=sl_svn3_243

><td class="source">        }<br></td></tr
><tr
id=sl_svn3_244

><td class="source"><br></td></tr
><tr
id=sl_svn3_245

><td class="source">        <br></td></tr
><tr
id=sl_svn3_246

><td class="source">        public static void RestartIntervalThread()<br></td></tr
><tr
id=sl_svn3_247

><td class="source">        {<br></td></tr
><tr
id=sl_svn3_248

><td class="source">            while (true) // wait for Abort()<br></td></tr
><tr
id=sl_svn3_249

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_250

><td class="source">                Log(&quot;Re-starting HB in &quot; + RestartInterval + &quot; minutes...&quot;);<br></td></tr
><tr
id=sl_svn3_251

><td class="source">                Thread.Sleep((int)(RestartInterval * 60 * 1000));<br></td></tr
><tr
id=sl_svn3_252

><td class="source">                RestartBot();<br></td></tr
><tr
id=sl_svn3_253

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_254

><td class="source">        }<br></td></tr
><tr
id=sl_svn3_255

><td class="source"><br></td></tr
><tr
id=sl_svn3_256

><td class="source">        public static void RestartWhenStuckThread()<br></td></tr
><tr
id=sl_svn3_257

><td class="source">        {<br></td></tr
><tr
id=sl_svn3_258

><td class="source">            Log(&quot;Detected stuck!! Re-starting bot.&quot;);<br></td></tr
><tr
id=sl_svn3_259

><td class="source"><br></td></tr
><tr
id=sl_svn3_260

><td class="source">            if (restartIntervalThread != null &amp;&amp; restartIntervalThread.IsAlive)<br></td></tr
><tr
id=sl_svn3_261

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_262

><td class="source">                restartIntervalThread.Abort();<br></td></tr
><tr
id=sl_svn3_263

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_264

><td class="source">		 <br></td></tr
><tr
id=sl_svn3_265

><td class="source">		if (!Me.Combat)<br></td></tr
><tr
id=sl_svn3_266

><td class="source">           	{ <br></td></tr
><tr
id=sl_svn3_267

><td class="source">		RestartBot();<br></td></tr
><tr
id=sl_svn3_268

><td class="source">		}<br></td></tr
><tr
id=sl_svn3_269

><td class="source">           <br></td></tr
><tr
id=sl_svn3_270

><td class="source">            if (RestartInterval &gt; 0)<br></td></tr
><tr
id=sl_svn3_271

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_272

><td class="source">                restartIntervalThread = new Thread(new ThreadStart(RestartIntervalThread));<br></td></tr
><tr
id=sl_svn3_273

><td class="source">                restartIntervalThread.Start();<br></td></tr
><tr
id=sl_svn3_274

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_275

><td class="source">        }<br></td></tr
><tr
id=sl_svn3_276

><td class="source"><br></td></tr
><tr
id=sl_svn3_277

><td class="source">        private static void UnstuckRoutine()<br></td></tr
><tr
id=sl_svn3_278

><td class="source">        {<br></td></tr
><tr
id=sl_svn3_279

><td class="source">	    PlaySound(&quot;Stuck.wav&quot;);<br></td></tr
><tr
id=sl_svn3_280

><td class="source">            Log(&quot;Performing unstuck routine!&quot;);<br></td></tr
><tr
id=sl_svn3_281

><td class="source">            Lua.DoString(&quot;Dismount() CancelShapeshiftForm()&quot;);<br></td></tr
><tr
id=sl_svn3_282

><td class="source">	    Lua.DoString(&quot;VehicleExit()&quot;);<br></td></tr
><tr
id=sl_svn3_283

><td class="source">                                       <br></td></tr
><tr
id=sl_svn3_284

><td class="source">            // swim jumps<br></td></tr
><tr
id=sl_svn3_285

><td class="source">            int numJumps = random.Next(2, 4);<br></td></tr
><tr
id=sl_svn3_286

><td class="source">            for (int i = 0; i &lt; numJumps; i++)<br></td></tr
><tr
id=sl_svn3_287

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_288

><td class="source">		Lua.DoString(&quot;Dismount() CancelShapeshiftForm()&quot;);<br></td></tr
><tr
id=sl_svn3_289

><td class="source">                Styx.Helpers.KeyboardManager.PressKey((char)Keys.Space);<br></td></tr
><tr
id=sl_svn3_290

><td class="source">                Thread.Sleep(random.Next(2000, 3000));<br></td></tr
><tr
id=sl_svn3_291

><td class="source">                Styx.Helpers.KeyboardManager.ReleaseKey((char)Keys.Space);<br></td></tr
><tr
id=sl_svn3_292

><td class="source">                Thread.Sleep(random.Next(250, 750));<br></td></tr
><tr
id=sl_svn3_293

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_294

><td class="source"><br></td></tr
><tr
id=sl_svn3_295

><td class="source">            // long jumps<br></td></tr
><tr
id=sl_svn3_296

><td class="source">            numJumps = random.Next(1, 3);<br></td></tr
><tr
id=sl_svn3_297

><td class="source">            for (int i = 0; i &lt; numJumps; i++)<br></td></tr
><tr
id=sl_svn3_298

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_299

><td class="source">    <br></td></tr
><tr
id=sl_svn3_300

><td class="source"><br></td></tr
><tr
id=sl_svn3_301

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_302

><td class="source"><br></td></tr
><tr
id=sl_svn3_303

><td class="source">            // short jumps<br></td></tr
><tr
id=sl_svn3_304

><td class="source">            numJumps = random.Next(1, 3);<br></td></tr
><tr
id=sl_svn3_305

><td class="source">            for (int i = 0; i &lt; numJumps; i++)<br></td></tr
><tr
id=sl_svn3_306

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_307

><td class="source">		Lua.DoString(&quot;Dismount() CancelShapeshiftForm()&quot;);<br></td></tr
><tr
id=sl_svn3_308

><td class="source">                Styx.Helpers.KeyboardManager.PressKey((char)Keys.Space);<br></td></tr
><tr
id=sl_svn3_309

><td class="source">                Thread.Sleep(random.Next(30, 50));<br></td></tr
><tr
id=sl_svn3_310

><td class="source">                Styx.Helpers.KeyboardManager.PressKey((char)Keys.Down);<br></td></tr
><tr
id=sl_svn3_311

><td class="source">                Thread.Sleep(random.Next(500, 750));<br></td></tr
><tr
id=sl_svn3_312

><td class="source">                Styx.Helpers.KeyboardManager.ReleaseKey((char)Keys.Down);<br></td></tr
><tr
id=sl_svn3_313

><td class="source">                Styx.Helpers.KeyboardManager.ReleaseKey((char)Keys.Space);<br></td></tr
><tr
id=sl_svn3_314

><td class="source">                Thread.Sleep(random.Next(250, 750));<br></td></tr
><tr
id=sl_svn3_315

><td class="source">        	Styx.Helpers.KeyboardManager.PressKey((char)Keys.Left);<br></td></tr
><tr
id=sl_svn3_316

><td class="source">                Thread.Sleep(random.Next(30, 50));<br></td></tr
><tr
id=sl_svn3_317

><td class="source">                Styx.Helpers.KeyboardManager.PressKey((char)Keys.Down);<br></td></tr
><tr
id=sl_svn3_318

><td class="source">                Thread.Sleep(random.Next(500, 750));<br></td></tr
><tr
id=sl_svn3_319

><td class="source">		Styx.Helpers.KeyboardManager.ReleaseKey((char)Keys.Left);<br></td></tr
><tr
id=sl_svn3_320

><td class="source">                Styx.Helpers.KeyboardManager.ReleaseKey((char)Keys.Down);<br></td></tr
><tr
id=sl_svn3_321

><td class="source">                Thread.Sleep(random.Next(250, 750)); <br></td></tr
><tr
id=sl_svn3_322

><td class="source">		Styx.Helpers.KeyboardManager.PressKey((char)Keys.Right);<br></td></tr
><tr
id=sl_svn3_323

><td class="source">                Thread.Sleep(random.Next(30, 50));<br></td></tr
><tr
id=sl_svn3_324

><td class="source">                Styx.Helpers.KeyboardManager.PressKey((char)Keys.Down);<br></td></tr
><tr
id=sl_svn3_325

><td class="source">                Thread.Sleep(random.Next(500, 750));<br></td></tr
><tr
id=sl_svn3_326

><td class="source">		Styx.Helpers.KeyboardManager.ReleaseKey((char)Keys.Right);<br></td></tr
><tr
id=sl_svn3_327

><td class="source">                Styx.Helpers.KeyboardManager.ReleaseKey((char)Keys.Down);<br></td></tr
><tr
id=sl_svn3_328

><td class="source">                Thread.Sleep(random.Next(250, 750));       <br></td></tr
><tr
id=sl_svn3_329

><td class="source">	}<br></td></tr
><tr
id=sl_svn3_330

><td class="source"><br></td></tr
><tr
id=sl_svn3_331

><td class="source">            lastPoint = new WoWPoint(Me.X, Me.Y, Me.Z);<br></td></tr
><tr
id=sl_svn3_332

><td class="source">        }<br></td></tr
><tr
id=sl_svn3_333

><td class="source"><br></td></tr
><tr
id=sl_svn3_334

><td class="source">     private static void RestartBot()<br></td></tr
><tr
id=sl_svn3_335

><td class="source">     {<br></td></tr
><tr
id=sl_svn3_336

><td class="source">	<br></td></tr
><tr
id=sl_svn3_337

><td class="source">        <br></td></tr
><tr
id=sl_svn3_338

><td class="source">            if (Me.IsInInstance || Battlegrounds.IsInsideBattleground || Me.Combat)<br></td></tr
><tr
id=sl_svn3_339

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_340

><td class="source">                Log(&quot;Inside an instance or a BG! Skipped HB re-start.&quot;);<br></td></tr
><tr
id=sl_svn3_341

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_342

><td class="source">            else                              <br></td></tr
><tr
id=sl_svn3_343

><td class="source">            { <br></td></tr
><tr
id=sl_svn3_344

><td class="source">               <br></td></tr
><tr
id=sl_svn3_345

><td class="source">		Log(&quot;Re-starting HB...&quot;);<br></td></tr
><tr
id=sl_svn3_346

><td class="source">		Lua.DoString(&quot;Dismount() CancelShapeshiftForm()&quot;);<br></td></tr
><tr
id=sl_svn3_347

><td class="source">		Lua.DoString(&quot;VehicleExit()&quot;);<br></td></tr
><tr
id=sl_svn3_348

><td class="source">                                       <br></td></tr
><tr
id=sl_svn3_349

><td class="source">	        spamD.Reset();<br></td></tr
><tr
id=sl_svn3_350

><td class="source">               	TimerUnstuck.Reset();<br></td></tr
><tr
id=sl_svn3_351

><td class="source">                TimerMount.Reset();<br></td></tr
><tr
id=sl_svn3_352

><td class="source">		TimerRestartFermo.Reset();<br></td></tr
><tr
id=sl_svn3_353

><td class="source">               <br></td></tr
><tr
id=sl_svn3_354

><td class="source">		<br></td></tr
><tr
id=sl_svn3_355

><td class="source">               	 // Lua.DoString(&quot;Logout()&quot;);<br></td></tr
><tr
id=sl_svn3_356

><td class="source">	    	TimerRestartFermo.Reset();<br></td></tr
><tr
id=sl_svn3_357

><td class="source">                spamD.Reset();<br></td></tr
><tr
id=sl_svn3_358

><td class="source">                TimerUnstuck.Reset();<br></td></tr
><tr
id=sl_svn3_359

><td class="source">               	archBuddyTimer.Reset();<br></td></tr
><tr
id=sl_svn3_360

><td class="source">                swimTimer.Reset();<br></td></tr
><tr
id=sl_svn3_361

><td class="source">                TimerMount.Reset();<br></td></tr
><tr
id=sl_svn3_362

><td class="source">		<br></td></tr
><tr
id=sl_svn3_363

><td class="source">		TreeRoot.Stop();<br></td></tr
><tr
id=sl_svn3_364

><td class="source">               <br></td></tr
><tr
id=sl_svn3_365

><td class="source">	                         <br></td></tr
><tr
id=sl_svn3_366

><td class="source">               Log(&quot;Waiting &quot; + StopStartTime + &quot; seconds...&quot;);<br></td></tr
><tr
id=sl_svn3_367

><td class="source">               Thread.Sleep(StopStartTime * 1000);<br></td></tr
><tr
id=sl_svn3_368

><td class="source"><br></td></tr
><tr
id=sl_svn3_369

><td class="source"> 	    <br></td></tr
><tr
id=sl_svn3_370

><td class="source">		Log(&quot;Starting HB...&quot;);<br></td></tr
><tr
id=sl_svn3_371

><td class="source">		 <br></td></tr
><tr
id=sl_svn3_372

><td class="source">               // Styx.Logic.BehaviorTree.TreeRoot.Start();<br></td></tr
><tr
id=sl_svn3_373

><td class="source">		TreeRoot.Start();<br></td></tr
><tr
id=sl_svn3_374

><td class="source"><br></td></tr
><tr
id=sl_svn3_375

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_376

><td class="source">     }<br></td></tr
><tr
id=sl_svn3_377

><td class="source">  <br></td></tr
><tr
id=sl_svn3_378

><td class="source"> <br></td></tr
><tr
id=sl_svn3_379

><td class="source">        private static bool Stuck()<br></td></tr
><tr
id=sl_svn3_380

><td class="source">        {<br></td></tr
><tr
id=sl_svn3_381

><td class="source">            WoWPoint myPoint = new WoWPoint(Me.X, Me.Y, Me.Z);<br></td></tr
><tr
id=sl_svn3_382

><td class="source"><br></td></tr
><tr
id=sl_svn3_383

><td class="source">            	if (TreeRoot.StatusText.Contains(&quot;Wait&quot;))<br></td></tr
><tr
id=sl_svn3_384

><td class="source">		{<br></td></tr
><tr
id=sl_svn3_385

><td class="source">		TimerRestartFermo.Reset();<br></td></tr
><tr
id=sl_svn3_386

><td class="source">                TimerUnstuck.Reset();<br></td></tr
><tr
id=sl_svn3_387

><td class="source">		return false;<br></td></tr
><tr
id=sl_svn3_388

><td class="source">		}<br></td></tr
><tr
id=sl_svn3_389

><td class="source">		//if (TreeRoot.GoalText.Contains(&quot;Wait&quot;))<br></td></tr
><tr
id=sl_svn3_390

><td class="source">		//{<br></td></tr
><tr
id=sl_svn3_391

><td class="source">		//restartStandingStillTimer.Reset();<br></td></tr
><tr
id=sl_svn3_392

><td class="source">                //TimerUnstuck.Reset();<br></td></tr
><tr
id=sl_svn3_393

><td class="source">		//return false;<br></td></tr
><tr
id=sl_svn3_394

><td class="source">		//}<br></td></tr
><tr
id=sl_svn3_395

><td class="source"><br></td></tr
><tr
id=sl_svn3_396

><td class="source">		<br></td></tr
><tr
id=sl_svn3_397

><td class="source">		if (TreeRoot.StatusText.Contains(&quot;Downloading&quot;))<br></td></tr
><tr
id=sl_svn3_398

><td class="source">		{<br></td></tr
><tr
id=sl_svn3_399

><td class="source">		TimerRestartFermo.Reset();<br></td></tr
><tr
id=sl_svn3_400

><td class="source">                TimerUnstuck.Reset();<br></td></tr
><tr
id=sl_svn3_401

><td class="source">		return false;<br></td></tr
><tr
id=sl_svn3_402

><td class="source">		}<br></td></tr
><tr
id=sl_svn3_403

><td class="source">		<br></td></tr
><tr
id=sl_svn3_404

><td class="source">		if (TreeRoot.StatusText.Contains(&quot;Loading Tile&quot;))<br></td></tr
><tr
id=sl_svn3_405

><td class="source">		{<br></td></tr
><tr
id=sl_svn3_406

><td class="source">		TimerRestartFermo.Reset();<br></td></tr
><tr
id=sl_svn3_407

><td class="source">                TimerUnstuck.Reset();<br></td></tr
><tr
id=sl_svn3_408

><td class="source">		return false;<br></td></tr
><tr
id=sl_svn3_409

><td class="source">		}<br></td></tr
><tr
id=sl_svn3_410

><td class="source"><br></td></tr
><tr
id=sl_svn3_411

><td class="source"><br></td></tr
><tr
id=sl_svn3_412

><td class="source"><br></td></tr
><tr
id=sl_svn3_413

><td class="source">	    if (myPoint.Distance(lastPoint) &gt; settings.StuckRange)<br></td></tr
><tr
id=sl_svn3_414

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_415

><td class="source">                lastPoint = myPoint;<br></td></tr
><tr
id=sl_svn3_416

><td class="source">               TimerRestartFermo.Reset();<br></td></tr
><tr
id=sl_svn3_417

><td class="source">                TimerUnstuck.Reset();<br></td></tr
><tr
id=sl_svn3_418

><td class="source">                return false;<br></td></tr
><tr
id=sl_svn3_419

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_420

><td class="source"><br></td></tr
><tr
id=sl_svn3_421

><td class="source">	    <br></td></tr
><tr
id=sl_svn3_422

><td class="source">            if (!TimerRestartFermo.IsRunning)<br></td></tr
><tr
id=sl_svn3_423

><td class="source">               TimerRestartFermo.Start();<br></td></tr
><tr
id=sl_svn3_424

><td class="source"><br></td></tr
><tr
id=sl_svn3_425

><td class="source">            if (!TimerUnstuck.IsRunning)<br></td></tr
><tr
id=sl_svn3_426

><td class="source">                TimerUnstuck.Start();<br></td></tr
><tr
id=sl_svn3_427

><td class="source"><br></td></tr
><tr
id=sl_svn3_428

><td class="source">            if (!archBuddyTimer.IsRunning &amp;&amp; Me.IsFlying &amp;&amp; Me.Combat)<br></td></tr
><tr
id=sl_svn3_429

><td class="source">                archBuddyTimer.Start();<br></td></tr
><tr
id=sl_svn3_430

><td class="source">            else if (archBuddyTimer.IsRunning &amp;&amp; (!Me.IsFlying || !Me.Combat))<br></td></tr
><tr
id=sl_svn3_431

><td class="source">                archBuddyTimer.Reset();<br></td></tr
><tr
id=sl_svn3_432

><td class="source"><br></td></tr
><tr
id=sl_svn3_433

><td class="source">            if (!swimTimer.IsRunning &amp;&amp; Me.IsSwimming)<br></td></tr
><tr
id=sl_svn3_434

><td class="source">                swimTimer.Start();<br></td></tr
><tr
id=sl_svn3_435

><td class="source">            else if (swimTimer.IsRunning &amp;&amp; !Me.IsSwimming)<br></td></tr
><tr
id=sl_svn3_436

><td class="source">                swimTimer.Reset();<br></td></tr
><tr
id=sl_svn3_437

><td class="source"><br></td></tr
><tr
id=sl_svn3_438

><td class="source">            if (!TimerMount.IsRunning &amp;&amp; Me.Mounted)<br></td></tr
><tr
id=sl_svn3_439

><td class="source">             	{    <br></td></tr
><tr
id=sl_svn3_440

><td class="source">	    	TimerMount.Start();<br></td></tr
><tr
id=sl_svn3_441

><td class="source">		}<br></td></tr
><tr
id=sl_svn3_442

><td class="source">            else if (TimerMount.IsRunning &amp;&amp; (!Me.Mounted || !Me.IsFlying ))<br></td></tr
><tr
id=sl_svn3_443

><td class="source">               	{<br></td></tr
><tr
id=sl_svn3_444

><td class="source">                 TimerMount.Reset();<br></td></tr
><tr
id=sl_svn3_445

><td class="source">		}<br></td></tr
><tr
id=sl_svn3_446

><td class="source">            if (TimerRestartFermo.Elapsed.TotalSeconds &gt; settings.StuckRestart)<br></td></tr
><tr
id=sl_svn3_447

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_448

><td class="source">               TimerRestartFermo.Reset();<br></td></tr
><tr
id=sl_svn3_449

><td class="source"><br></td></tr
><tr
id=sl_svn3_450

><td class="source">                if (restartIntervalThread != null &amp;&amp; restartIntervalThread.IsAlive)<br></td></tr
><tr
id=sl_svn3_451

><td class="source">                {<br></td></tr
><tr
id=sl_svn3_452

><td class="source">                    restartIntervalThread.Abort();<br></td></tr
><tr
id=sl_svn3_453

><td class="source">                }<br></td></tr
><tr
id=sl_svn3_454

><td class="source">                if (restartWhenStuckThread != null &amp;&amp; restartWhenStuckThread.IsAlive)<br></td></tr
><tr
id=sl_svn3_455

><td class="source">                {<br></td></tr
><tr
id=sl_svn3_456

><td class="source">                    restartWhenStuckThread.Abort();<br></td></tr
><tr
id=sl_svn3_457

><td class="source">                }<br></td></tr
><tr
id=sl_svn3_458

><td class="source"><br></td></tr
><tr
id=sl_svn3_459

><td class="source">                restartWhenStuckThread = new Thread(new ThreadStart(RestartWhenStuckThread));<br></td></tr
><tr
id=sl_svn3_460

><td class="source">                restartWhenStuckThread.Start();<br></td></tr
><tr
id=sl_svn3_461

><td class="source">                return true;<br></td></tr
><tr
id=sl_svn3_462

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_463

><td class="source"><br></td></tr
><tr
id=sl_svn3_464

><td class="source">            if (TimerUnstuck.Elapsed.TotalSeconds &gt; settings.StuckRoutine &amp;&amp; !Me.Combat)<br></td></tr
><tr
id=sl_svn3_465

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_466

><td class="source">                swimTimer.Reset();<br></td></tr
><tr
id=sl_svn3_467

><td class="source">                TimerUnstuck.Reset();<br></td></tr
><tr
id=sl_svn3_468

><td class="source">                UnstuckRoutine();<br></td></tr
><tr
id=sl_svn3_469

><td class="source">                return true;<br></td></tr
><tr
id=sl_svn3_470

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_471

><td class="source"><br></td></tr
><tr
id=sl_svn3_472

><td class="source">            if (PoolFisherFixMins != 0 &amp;&amp; swimTimer.Elapsed.TotalMinutes &gt; PoolFisherFixMins)<br></td></tr
><tr
id=sl_svn3_473

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_474

><td class="source">                swimTimer.Reset();<br></td></tr
><tr
id=sl_svn3_475

><td class="source">                TimerUnstuck.Reset();<br></td></tr
><tr
id=sl_svn3_476

><td class="source">                UnstuckRoutine();<br></td></tr
><tr
id=sl_svn3_477

><td class="source">                return true;<br></td></tr
><tr
id=sl_svn3_478

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_479

><td class="source"><br></td></tr
><tr
id=sl_svn3_480

><td class="source">            if (ArchBuddyFixMins != 0 &amp;&amp; archBuddyTimer.Elapsed.TotalMinutes &gt; ArchBuddyFixMins)<br></td></tr
><tr
id=sl_svn3_481

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_482

><td class="source">                Log(&quot;Dismounting while flying&quot;);<br></td></tr
><tr
id=sl_svn3_483

><td class="source">                archBuddyTimer.Reset();<br></td></tr
><tr
id=sl_svn3_484

><td class="source">                Mount.Dismount();<br></td></tr
><tr
id=sl_svn3_485

><td class="source">                return true;<br></td></tr
><tr
id=sl_svn3_486

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_487

><td class="source"><br></td></tr
><tr
id=sl_svn3_488

><td class="source">	if (TimerMount.Elapsed.TotalSeconds &gt; settings.MountStuck &amp;&amp; Me.Mounted )<br></td></tr
><tr
id=sl_svn3_489

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_490

><td class="source">                Log(&quot;Dismounting to unstuck&quot;);<br></td></tr
><tr
id=sl_svn3_491

><td class="source">                TimerMount.Reset();<br></td></tr
><tr
id=sl_svn3_492

><td class="source">                //Mount.Dismount();<br></td></tr
><tr
id=sl_svn3_493

><td class="source">		Lua.DoString(&quot;Dismount() CancelShapeshiftForm()&quot;);<br></td></tr
><tr
id=sl_svn3_494

><td class="source">                return true;<br></td></tr
><tr
id=sl_svn3_495

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_496

><td class="source">	 <br></td></tr
><tr
id=sl_svn3_497

><td class="source">        return false;<br></td></tr
><tr
id=sl_svn3_498

><td class="source">        }<br></td></tr
><tr
id=sl_svn3_499

><td class="source"><br></td></tr
><tr
id=sl_svn3_500

><td class="source"><br></td></tr
><tr
id=sl_svn3_501

><td class="source">    #region plugin<br></td></tr
><tr
id=sl_svn3_502

><td class="source"><br></td></tr
><tr
id=sl_svn3_503

><td class="source">        private PluginContainer GetPlugin() {<br></td></tr
><tr
id=sl_svn3_504

><td class="source">            foreach (PluginContainer p in PluginManager.Plugins)<br></td></tr
><tr
id=sl_svn3_505

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_506

><td class="source">                if (p != null &amp;&amp; p.Name == Name)<br></td></tr
><tr
id=sl_svn3_507

><td class="source">                {<br></td></tr
><tr
id=sl_svn3_508

><td class="source">                    return p;<br></td></tr
><tr
id=sl_svn3_509

><td class="source">                }<br></td></tr
><tr
id=sl_svn3_510

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_511

><td class="source">            return null;<br></td></tr
><tr
id=sl_svn3_512

><td class="source">        }<br></td></tr
><tr
id=sl_svn3_513

><td class="source"><br></td></tr
><tr
id=sl_svn3_514

><td class="source">        private bool IsPluginEnabled()<br></td></tr
><tr
id=sl_svn3_515

><td class="source">        {<br></td></tr
><tr
id=sl_svn3_516

><td class="source">            PluginContainer p = GetPlugin();<br></td></tr
><tr
id=sl_svn3_517

><td class="source">            if (p == null)<br></td></tr
><tr
id=sl_svn3_518

><td class="source">            {<br></td></tr
><tr
id=sl_svn3_519

><td class="source">                return false;<br></td></tr
><tr
id=sl_svn3_520

><td class="source">            }<br></td></tr
><tr
id=sl_svn3_521

><td class="source">            return p.Enabled;<br></td></tr
><tr
id=sl_svn3_522

><td class="source">        }<br></td></tr
><tr
id=sl_svn3_523

><td class="source"><br></td></tr
><tr
id=sl_svn3_524

><td class="source">        #endregion<br></td></tr
><tr
id=sl_svn3_525

><td class="source"><br></td></tr
><tr
id=sl_svn3_526

><td class="source">        private static void Log(string format, params object[] args)<br></td></tr
><tr
id=sl_svn3_527

><td class="source">        {<br></td></tr
><tr
id=sl_svn3_528

><td class="source">            Logging.Write(Color.DarkRed, &quot;[StuckHelperFly] &quot; + format, args);<br></td></tr
><tr
id=sl_svn3_529

><td class="source">        }<br></td></tr
><tr
id=sl_svn3_530

><td class="source">    }<br></td></tr
><tr
id=sl_svn3_531

><td class="source">}<br></td></tr
><tr
id=sl_svn3_532

><td class="source"><br></td></tr
></table></pre>
<pre><table width="100%"><tr class="cursor_stop cursor_hidden"><td></td></tr></table></pre>
</td>
</tr></table>

 
<script type="text/javascript">
 var lineNumUnderMouse = -1;
 
 function gutterOver(num) {
 gutterOut();
 var newTR = document.getElementById('gr_svn3_' + num);
 if (newTR) {
 newTR.className = 'undermouse';
 }
 lineNumUnderMouse = num;
 }
 function gutterOut() {
 if (lineNumUnderMouse != -1) {
 var oldTR = document.getElementById(
 'gr_svn3_' + lineNumUnderMouse);
 if (oldTR) {
 oldTR.className = '';
 }
 lineNumUnderMouse = -1;
 }
 }
 var numsGenState = {table_base_id: 'nums_table_'};
 var srcGenState = {table_base_id: 'src_table_'};
 var alignerRunning = false;
 var startOver = false;
 function setLineNumberHeights() {
 if (alignerRunning) {
 startOver = true;
 return;
 }
 numsGenState.chunk_id = 0;
 numsGenState.table = document.getElementById('nums_table_0');
 numsGenState.row_num = 0;
 if (!numsGenState.table) {
 return; // Silently exit if no file is present.
 }
 srcGenState.chunk_id = 0;
 srcGenState.table = document.getElementById('src_table_0');
 srcGenState.row_num = 0;
 alignerRunning = true;
 continueToSetLineNumberHeights();
 }
 function rowGenerator(genState) {
 if (genState.row_num < genState.table.rows.length) {
 var currentRow = genState.table.rows[genState.row_num];
 genState.row_num++;
 return currentRow;
 }
 var newTable = document.getElementById(
 genState.table_base_id + (genState.chunk_id + 1));
 if (newTable) {
 genState.chunk_id++;
 genState.row_num = 0;
 genState.table = newTable;
 return genState.table.rows[0];
 }
 return null;
 }
 var MAX_ROWS_PER_PASS = 1000;
 function continueToSetLineNumberHeights() {
 var rowsInThisPass = 0;
 var numRow = 1;
 var srcRow = 1;
 while (numRow && srcRow && rowsInThisPass < MAX_ROWS_PER_PASS) {
 numRow = rowGenerator(numsGenState);
 srcRow = rowGenerator(srcGenState);
 rowsInThisPass++;
 if (numRow && srcRow) {
 if (numRow.offsetHeight != srcRow.offsetHeight) {
 numRow.firstChild.style.height = srcRow.offsetHeight + 'px';
 }
 }
 }
 if (rowsInThisPass >= MAX_ROWS_PER_PASS) {
 setTimeout(continueToSetLineNumberHeights, 10);
 } else {
 alignerRunning = false;
 if (startOver) {
 startOver = false;
 setTimeout(setLineNumberHeights, 500);
 }
 }
 }
 function initLineNumberHeights() {
 // Do 2 complete passes, because there can be races
 // between this code and prettify.
 startOver = true;
 setTimeout(setLineNumberHeights, 250);
 window.onresize = setLineNumberHeights;
 }
 initLineNumberHeights();
</script>

 
 
 <div id="log">
 <div style="text-align:right">
 <a class="ifCollapse" href="#" onclick="_toggleMeta('', 'p', 'codemplosion-profiles', this)">Show details</a>
 <a class="ifExpand" href="#" onclick="_toggleMeta('', 'p', 'codemplosion-profiles', this)">Hide details</a>
 </div>
 <div class="ifExpand">
 
 
 <div class="pmeta_bubble_bg" style="border:1px solid white">
 <div class="round4"></div>
 <div class="round2"></div>
 <div class="round1"></div>
 <div class="box-inner">
 <div id="changelog">
 <p>Change log</p>
 <div>
 <a href="/p/codemplosion-profiles/source/detail?spec=svn3&amp;r=3">r3</a>
 by bwandin123
 on Jul 2, 2011
 &nbsp; <a href="/p/codemplosion-profiles/source/diff?spec=svn3&r=3&amp;format=side&amp;path=/trunk/Plugins/StuckHelper/StuckHelperFly.cs&amp;old_path=/trunk/Plugins/StuckHelper/StuckHelperFly.cs&amp;old=">Diff</a>
 </div>
 <pre>Added StuckHelper
Added more Quest Behaviors</pre>
 </div>
 
 
 
 
 
 
 <script type="text/javascript">
 var detail_url = '/p/codemplosion-profiles/source/detail?r=3&spec=svn3';
 var publish_url = '/p/codemplosion-profiles/source/detail?r=3&spec=svn3#publish';
 // describe the paths of this revision in javascript.
 var changed_paths = [];
 var changed_urls = [];
 
 changed_paths.push('/trunk/Plugins/StuckHelper');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Plugins/StuckHelper?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Plugins/StuckHelper/Sounds');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Plugins/StuckHelper/Sounds?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Plugins/StuckHelper/Sounds/Stuck.wav');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Plugins/StuckHelper/Sounds/Stuck.wav?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Plugins/StuckHelper/StuckHelperFly.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Plugins/StuckHelper/StuckHelperFly.cs?r\x3d3\x26spec\x3dsvn3');
 
 var selected_path = '/trunk/Plugins/StuckHelper/StuckHelperFly.cs';
 
 
 changed_paths.push('/trunk/Plugins/StuckHelper/StuckHelperGround.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Plugins/StuckHelper/StuckHelperGround.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/AbandonQuest.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/AbandonQuest.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/BasicInteractWith.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/BasicInteractWith.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/BasicMoveTo.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/BasicMoveTo.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/BasicUseObject.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/BasicUseObject.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/BasicVehicleBehaviour.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/BasicVehicleBehaviour.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/ButtonPress');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ButtonPress?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/ButtonPress/ButtonPressOnAura.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ButtonPress/ButtonPressOnAura.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/ButtonPress/ButtonPressOnChat.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ButtonPress/ButtonPressOnChat.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/CastSpellOn.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/CastSpellOn.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/CollectThings.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/CollectThings.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/CombatUseItemOn.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/CombatUseItemOn.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/CompleteLogQuest.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/CompleteLogQuest.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/DeathknightStart');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/DeathknightStart?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/DeathknightStart/AnEndToAllThings.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/DeathknightStart/AnEndToAllThings.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/DeathknightStart/FindAndBeatNpcs.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/DeathknightStart/FindAndBeatNpcs.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/DeathknightStart/IntotheRealmofShadows.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/DeathknightStart/IntotheRealmofShadows.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/DeathknightStart/TheGiftThatKeepsOnGiving.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/DeathknightStart/TheGiftThatKeepsOnGiving.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/DeathknightStart/TheLightOfDawn.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/DeathknightStart/TheLightOfDawn.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/DeathknightStart/WaitForPatrol.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/DeathknightStart/WaitForPatrol.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/EjectVeh.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/EjectVeh.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/EquipItem.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/EquipItem.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/Escort.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/Escort.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/FlyTo.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/FlyTo.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/FollowNpcUntil.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/FollowNpcUntil.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/ForceSetVendor.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ForceSetVendor.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/ForceTrain.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ForceTrain.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/ForceTrainRiding.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ForceTrainRiding.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/ForcedDismount.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ForcedDismount.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/ForcedMount.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ForcedMount.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/GoThruPortal.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/GoThruPortal.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/Halt.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/Halt.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/ItemWhileMoving.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ItemWhileMoving.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/KillUntilComplete.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/KillUntilComplete.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/LoadProfile.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/LoadProfile.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/Message.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/Message.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/Misc');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/Misc?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/Misc/RunLua.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/Misc/RunLua.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/Misc/SafeQuestTurnin.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/Misc/SafeQuestTurnin.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/MountHyjal');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/MountHyjal?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/MountHyjal/BaronGeddon.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/MountHyjal/BaronGeddon.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/MountHyjal/BearsUpThere.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/MountHyjal/BearsUpThere.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/MountHyjal/GreaterOfTwoEvils.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/MountHyjal/GreaterOfTwoEvils.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/MountHyjal/MentalTraining.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/MountHyjal/MentalTraining.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/MountVehOnly.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/MountVehOnly.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 changed_paths.push('/trunk/Quest Behaviors/MyCTM.cs');
 changed_urls.push('/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/MyCTM.cs?r\x3d3\x26spec\x3dsvn3');
 
 
 function getCurrentPageIndex() {
 for (var i = 0; i < changed_paths.length; i++) {
 if (selected_path == changed_paths[i]) {
 return i;
 }
 }
 }
 function getNextPage() {
 var i = getCurrentPageIndex();
 if (i < changed_paths.length - 1) {
 return changed_urls[i + 1];
 }
 return null;
 }
 function getPreviousPage() {
 var i = getCurrentPageIndex();
 if (i > 0) {
 return changed_urls[i - 1];
 }
 return null;
 }
 function gotoNextPage() {
 var page = getNextPage();
 if (!page) {
 page = detail_url;
 }
 window.location = page;
 }
 function gotoPreviousPage() {
 var page = getPreviousPage();
 if (!page) {
 page = detail_url;
 }
 window.location = page;
 }
 function gotoDetailPage() {
 window.location = detail_url;
 }
 function gotoPublishPage() {
 window.location = publish_url;
 }
</script>

 
 <style type="text/css">
 #review_nav {
 border-top: 3px solid white;
 padding-top: 6px;
 margin-top: 1em;
 }
 #review_nav td {
 vertical-align: middle;
 }
 #review_nav select {
 margin: .5em 0;
 }
 </style>
 <div id="review_nav">
 <table><tr><td>Go to:&nbsp;</td><td>
 <select name="files_in_rev" onchange="window.location=this.value">
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Plugins/StuckHelper?r=3&amp;spec=svn3"
 
 >/trunk/Plugins/StuckHelper</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Plugins/StuckHelper/Sounds?r=3&amp;spec=svn3"
 
 >/trunk/Plugins/StuckHelper/Sounds</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Plugins/StuckHelper/Sounds/Stuck.wav?r=3&amp;spec=svn3"
 
 >...ins/StuckHelper/Sounds/Stuck.wav</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Plugins/StuckHelper/StuckHelperFly.cs?r=3&amp;spec=svn3"
 selected="selected"
 >...ns/StuckHelper/StuckHelperFly.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Plugins/StuckHelper/StuckHelperGround.cs?r=3&amp;spec=svn3"
 
 >...StuckHelper/StuckHelperGround.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/AbandonQuest.cs?r=3&amp;spec=svn3"
 
 >.../Quest Behaviors/AbandonQuest.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/BasicInteractWith.cs?r=3&amp;spec=svn3"
 
 >...t Behaviors/BasicInteractWith.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/BasicMoveTo.cs?r=3&amp;spec=svn3"
 
 >...k/Quest Behaviors/BasicMoveTo.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/BasicUseObject.cs?r=3&amp;spec=svn3"
 
 >...uest Behaviors/BasicUseObject.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/BasicVehicleBehaviour.cs?r=3&amp;spec=svn3"
 
 >...haviors/BasicVehicleBehaviour.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ButtonPress?r=3&amp;spec=svn3"
 
 >/trunk/Quest Behaviors/ButtonPress</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ButtonPress/ButtonPressOnAura.cs?r=3&amp;spec=svn3"
 
 >...ButtonPress/ButtonPressOnAura.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ButtonPress/ButtonPressOnChat.cs?r=3&amp;spec=svn3"
 
 >...ButtonPress/ButtonPressOnChat.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/CastSpellOn.cs?r=3&amp;spec=svn3"
 
 >...k/Quest Behaviors/CastSpellOn.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/CollectThings.cs?r=3&amp;spec=svn3"
 
 >...Quest Behaviors/CollectThings.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/CombatUseItemOn.cs?r=3&amp;spec=svn3"
 
 >...est Behaviors/CombatUseItemOn.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/CompleteLogQuest.cs?r=3&amp;spec=svn3"
 
 >...st Behaviors/CompleteLogQuest.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/DeathknightStart?r=3&amp;spec=svn3"
 
 >...Quest Behaviors/DeathknightStart</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/DeathknightStart/AnEndToAllThings.cs?r=3&amp;spec=svn3"
 
 >...hknightStart/AnEndToAllThings.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/DeathknightStart/FindAndBeatNpcs.cs?r=3&amp;spec=svn3"
 
 >...thknightStart/FindAndBeatNpcs.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/DeathknightStart/IntotheRealmofShadows.cs?r=3&amp;spec=svn3"
 
 >...htStart/IntotheRealmofShadows.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/DeathknightStart/TheGiftThatKeepsOnGiving.cs?r=3&amp;spec=svn3"
 
 >...tart/TheGiftThatKeepsOnGiving.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/DeathknightStart/TheLightOfDawn.cs?r=3&amp;spec=svn3"
 
 >...athknightStart/TheLightOfDawn.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/DeathknightStart/WaitForPatrol.cs?r=3&amp;spec=svn3"
 
 >...eathknightStart/WaitForPatrol.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/EjectVeh.cs?r=3&amp;spec=svn3"
 
 >/trunk/Quest Behaviors/EjectVeh.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/EquipItem.cs?r=3&amp;spec=svn3"
 
 >/trunk/Quest Behaviors/EquipItem.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/Escort.cs?r=3&amp;spec=svn3"
 
 >/trunk/Quest Behaviors/Escort.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/FlyTo.cs?r=3&amp;spec=svn3"
 
 >/trunk/Quest Behaviors/FlyTo.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/FollowNpcUntil.cs?r=3&amp;spec=svn3"
 
 >...uest Behaviors/FollowNpcUntil.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ForceSetVendor.cs?r=3&amp;spec=svn3"
 
 >...uest Behaviors/ForceSetVendor.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ForceTrain.cs?r=3&amp;spec=svn3"
 
 >...nk/Quest Behaviors/ForceTrain.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ForceTrainRiding.cs?r=3&amp;spec=svn3"
 
 >...st Behaviors/ForceTrainRiding.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ForcedDismount.cs?r=3&amp;spec=svn3"
 
 >...uest Behaviors/ForcedDismount.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ForcedMount.cs?r=3&amp;spec=svn3"
 
 >...k/Quest Behaviors/ForcedMount.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/GoThruPortal.cs?r=3&amp;spec=svn3"
 
 >.../Quest Behaviors/GoThruPortal.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/Halt.cs?r=3&amp;spec=svn3"
 
 >/trunk/Quest Behaviors/Halt.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/ItemWhileMoving.cs?r=3&amp;spec=svn3"
 
 >...est Behaviors/ItemWhileMoving.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/KillUntilComplete.cs?r=3&amp;spec=svn3"
 
 >...t Behaviors/KillUntilComplete.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/LoadProfile.cs?r=3&amp;spec=svn3"
 
 >...k/Quest Behaviors/LoadProfile.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/Message.cs?r=3&amp;spec=svn3"
 
 >/trunk/Quest Behaviors/Message.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/Misc?r=3&amp;spec=svn3"
 
 >/trunk/Quest Behaviors/Misc</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/Misc/RunLua.cs?r=3&amp;spec=svn3"
 
 >...k/Quest Behaviors/Misc/RunLua.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/Misc/SafeQuestTurnin.cs?r=3&amp;spec=svn3"
 
 >...ehaviors/Misc/SafeQuestTurnin.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/MountHyjal?r=3&amp;spec=svn3"
 
 >/trunk/Quest Behaviors/MountHyjal</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/MountHyjal/BaronGeddon.cs?r=3&amp;spec=svn3"
 
 >...aviors/MountHyjal/BaronGeddon.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/MountHyjal/BearsUpThere.cs?r=3&amp;spec=svn3"
 
 >...viors/MountHyjal/BearsUpThere.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/MountHyjal/GreaterOfTwoEvils.cs?r=3&amp;spec=svn3"
 
 >.../MountHyjal/GreaterOfTwoEvils.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/MountHyjal/MentalTraining.cs?r=3&amp;spec=svn3"
 
 >...ors/MountHyjal/MentalTraining.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/MountVehOnly.cs?r=3&amp;spec=svn3"
 
 >.../Quest Behaviors/MountVehOnly.cs</option>
 
 <option value="/p/codemplosion-profiles/source/browse/trunk/Quest Behaviors/MyCTM.cs?r=3&amp;spec=svn3"
 
 >/trunk/Quest Behaviors/MyCTM.cs</option>
 
 </select>
 </td></tr></table>
 
 
 



 
 </div>
 
 
 </div>
 <div class="round1"></div>
 <div class="round2"></div>
 <div class="round4"></div>
 </div>
 <div class="pmeta_bubble_bg" style="border:1px solid white">
 <div class="round4"></div>
 <div class="round2"></div>
 <div class="round1"></div>
 <div class="box-inner">
 <div id="older_bubble">
 <p>Older revisions</p>
 
 <a href="/p/codemplosion-profiles/source/list?path=/trunk/Plugins/StuckHelper/StuckHelperFly.cs&start=3">All revisions of this file</a>
 </div>
 </div>
 <div class="round1"></div>
 <div class="round2"></div>
 <div class="round4"></div>
 </div>
 
 <div class="pmeta_bubble_bg" style="border:1px solid white">
 <div class="round4"></div>
 <div class="round2"></div>
 <div class="round1"></div>
 <div class="box-inner">
 <div id="fileinfo_bubble">
 <p>File info</p>
 
 <div>Size: 17470 bytes,
 532 lines</div>
 
 <div><a href="//codemplosion-profiles.googlecode.com/svn-history/r3/trunk/Plugins/StuckHelper/StuckHelperFly.cs">View raw file</a></div>
 </div>
 
 </div>
 <div class="round1"></div>
 <div class="round2"></div>
 <div class="round4"></div>
 </div>
 </div>
 </div>


</div>

</div>
</div>

<script src="http://www.gstatic.com/codesite/ph/274877064420089206/js/prettify/prettify.js"></script>
<script type="text/javascript">prettyPrint();</script>


<script src="http://www.gstatic.com/codesite/ph/274877064420089206/js/source_file_scripts.js"></script>

 <script type="text/javascript" src="https://kibbles.googlecode.com/files/kibbles-1.3.3.comp.js"></script>
 <script type="text/javascript">
 var lastStop = null;
 var initialized = false;
 
 function updateCursor(next, prev) {
 if (prev && prev.element) {
 prev.element.className = 'cursor_stop cursor_hidden';
 }
 if (next && next.element) {
 next.element.className = 'cursor_stop cursor';
 lastStop = next.index;
 }
 }
 
 function pubRevealed(data) {
 updateCursorForCell(data.cellId, 'cursor_stop cursor_hidden');
 if (initialized) {
 reloadCursors();
 }
 }
 
 function draftRevealed(data) {
 updateCursorForCell(data.cellId, 'cursor_stop cursor_hidden');
 if (initialized) {
 reloadCursors();
 }
 }
 
 function draftDestroyed(data) {
 updateCursorForCell(data.cellId, 'nocursor');
 if (initialized) {
 reloadCursors();
 }
 }
 function reloadCursors() {
 kibbles.skipper.reset();
 loadCursors();
 if (lastStop != null) {
 kibbles.skipper.setCurrentStop(lastStop);
 }
 }
 // possibly the simplest way to insert any newly added comments
 // is to update the class of the corresponding cursor row,
 // then refresh the entire list of rows.
 function updateCursorForCell(cellId, className) {
 var cell = document.getElementById(cellId);
 // we have to go two rows back to find the cursor location
 var row = getPreviousElement(cell.parentNode);
 row.className = className;
 }
 // returns the previous element, ignores text nodes.
 function getPreviousElement(e) {
 var element = e.previousSibling;
 if (element.nodeType == 3) {
 element = element.previousSibling;
 }
 if (element && element.tagName) {
 return element;
 }
 }
 function loadCursors() {
 // register our elements with skipper
 var elements = CR_getElements('*', 'cursor_stop');
 var len = elements.length;
 for (var i = 0; i < len; i++) {
 var element = elements[i]; 
 element.className = 'cursor_stop cursor_hidden';
 kibbles.skipper.append(element);
 }
 }
 function toggleComments() {
 CR_toggleCommentDisplay();
 reloadCursors();
 }
 function keysOnLoadHandler() {
 // setup skipper
 kibbles.skipper.addStopListener(
 kibbles.skipper.LISTENER_TYPE.PRE, updateCursor);
 // Set the 'offset' option to return the middle of the client area
 // an option can be a static value, or a callback
 kibbles.skipper.setOption('padding_top', 50);
 // Set the 'offset' option to return the middle of the client area
 // an option can be a static value, or a callback
 kibbles.skipper.setOption('padding_bottom', 100);
 // Register our keys
 kibbles.skipper.addFwdKey("n");
 kibbles.skipper.addRevKey("p");
 kibbles.keys.addKeyPressListener(
 'u', function() { window.location = detail_url; });
 kibbles.keys.addKeyPressListener(
 'r', function() { window.location = detail_url + '#publish'; });
 
 kibbles.keys.addKeyPressListener('j', gotoNextPage);
 kibbles.keys.addKeyPressListener('k', gotoPreviousPage);
 
 
 }
 </script>
<script src="http://www.gstatic.com/codesite/ph/274877064420089206/js/code_review_scripts.js"></script>
<script type="text/javascript">
 function showPublishInstructions() {
 var element = document.getElementById('review_instr');
 if (element) {
 element.className = 'opened';
 }
 }
 var codereviews;
 function revsOnLoadHandler() {
 // register our source container with the commenting code
 var paths = {'svn3': '/trunk/Plugins/StuckHelper/StuckHelperFly.cs'}
 codereviews = CR_controller.setup(
 {"profileUrl":["/u/@VBNeQFBSARJBWwQ%3D/"],"token":"71d426fefa2fb2fc6ffa3dd38d2b37f7","assetHostPath":"http://www.gstatic.com/codesite/ph","domainName":null,"assetVersionPath":"http://www.gstatic.com/codesite/ph/274877064420089206","projectHomeUrl":"/p/codemplosion-profiles","relativeBaseUrl":"","projectName":"codemplosion-profiles","loggedInUserEmail":"benjaminweinhardt1991@googlemail.com"}, '', 'svn3', paths,
 CR_BrowseIntegrationFactory);
 
 codereviews.registerActivityListener(CR_ActivityType.REVEAL_DRAFT_PLATE, showPublishInstructions);
 
 codereviews.registerActivityListener(CR_ActivityType.REVEAL_PUB_PLATE, pubRevealed);
 codereviews.registerActivityListener(CR_ActivityType.REVEAL_DRAFT_PLATE, draftRevealed);
 codereviews.registerActivityListener(CR_ActivityType.DISCARD_DRAFT_COMMENT, draftDestroyed);
 
 
 
 
 
 
 
 var initialized = true;
 reloadCursors();
 }
 window.onload = function() {keysOnLoadHandler(); revsOnLoadHandler();};

</script>
<script type="text/javascript" src="http://www.gstatic.com/codesite/ph/274877064420089206/js/dit_scripts.js"></script>

 
 
 
 <script type="text/javascript" src="http://www.gstatic.com/codesite/ph/274877064420089206/js/ph_core.js"></script>
 
 
 
 
 <script type="text/javascript" src="/js/codesite_product_dictionary_ph.pack.04102009.js"></script>
</div> 
<div id="footer" dir="ltr">
 <div class="text">
 &copy;2011 Google -
 <a href="/projecthosting/terms.html">Terms</a> -
 <a href="http://www.google.com/privacy.html">Privacy</a> -
 <a href="/p/support/">Project Hosting Help</a>
 </div>
</div>
 <div class="hostedBy" style="margin-top: -20px;">
 <span style="vertical-align: top;">Powered by <a href="http://code.google.com/projecthosting/">Google Project Hosting</a></span>
 </div>
 
 


 
 </body>
</html>

